Reininicia el contador a cero. Una vez realizado el reset, los mensajes estadísticos de log y el control de intervalos consideran consideran la siguiente iteración como la primera.
1 util.counter.reset
<util.counter.reset>
<contador /> !
</util.counter.reset>
Arguments | |||||
---|---|---|---|---|---|
Name | Type | Required | Unique | Nullable | Description |
Econtador | Contador, objeto counter que se reinicia. |
Example
Genera 50000 registros en una tabla vacía utilizando un contador para emitir un log de proceso cada 1000 registros. Posteriormente los borra usando el mismo contador, previo reset de éste.
Copy
<xsql-script name='test_counter'> <body> <set name='m_counter'><util.counter step='10000' max='50000' /></set> <nativesql> !DROP TABLE test_counter; CREATE TABLE test_counter ( code CHAR(8), name VARCHAR(20) ); </nativesql> <for name='m_idx' start='0' end='50000'> <do> <set name='m_code'><string.lpad><string><m_idx /></string>8<string>0</string></string.lpad></set> <set name='m_name'><string>NAME [<m_code />]</string></set> <insert table='test_counter'> <column name='code'><m_code /></column> <column name='name'><m_name /></column> </insert> <if> <expr><util.counter.count><m_counter /></util.counter.count></expr> <then> <println>INSERT - <util.counter.log><m_counter /></util.counter.log></println> <connection.commit /> <connection.begin /> </then> </if> </do> </for> <util.counter.reset><m_counter /></util.counter.reset> <println /><println /> <foreach> <select prefix='m_'> <columns>code</columns> <from table='test_counter' /> </select> <do> <delete table='test_counter'> <where> code = <m_code /> </where> </delete> <if> <expr><util.counter.count><m_counter /></util.counter.count></expr> <then> <println>DELETE - <util.counter.log><m_counter /></util.counter.log></println> <connection.commit /> <connection.begin /> </then> </if> </do> </foreach> <connection.commit /> <nativesql> !DROP TABLE test_counter; </nativesql> </body> </xsql-script>
Nos muestra el siguiente resultado.
Copy
INSERT - 10000 row(s) of 50000 ( 20,0 %) in [00:00:02], elapsed [00:00:02], performance [ 4115,2 row(s) / sec] ETA=[00:00:09] INSERT - 20000 row(s) of 50000 ( 40,0 %) in [00:00:02], elapsed [00:00:04], performance [ 4210,5 row(s) / sec] ETA=[00:00:07] INSERT - 30000 row(s) of 50000 ( 60,0 %) in [00:00:02], elapsed [00:00:07], performance [ 4191,1 row(s) / sec] ETA=[00:00:04] INSERT - 40000 row(s) of 50000 ( 80,0 %) in [00:00:02], elapsed [00:00:10], performance [ 3479,5 row(s) / sec] ETA=[00:00:02] INSERT - 50000 row(s) of 50000 (100,0 %) in [00:00:02], elapsed [00:00:12], performance [ 3785,0 row(s) / sec] END DELETE - 10000 row(s) of 50000 ( 20,0 %) in [00:02:40], elapsed [00:02:40], performance [ 62,4 row(s) / sec] ETA=[00:02:16] DELETE - 20000 row(s) of 50000 ( 40,0 %) in [00:02:07], elapsed [00:04:47], performance [ 78,7 row(s) / sec] ETA=[00:02:56] DELETE - 30000 row(s) of 50000 ( 60,0 %) in [00:01:32], elapsed [00:06:20], performance [ 107,7 row(s) / sec] ETA=[00:02:34] DELETE - 40000 row(s) of 50000 ( 80,0 %) in [00:00:59], elapsed [00:07:19], performance [ 169,4 row(s) / sec] ETA=[00:01:28] DELETE - 50000 row(s) of 50000 (100,0 %) in [00:00:27], elapsed [00:07:46], performance [ 368,1 row(s) / sec] END