Доброго времени суток!
Khorsun Vlad пишет:
fetches, reads, *writes*
Вот данные для 2.1.1 CS, FW ON Скрипт 1 Start Transaction: consistency no_auto_undo ExecSQL: update Test_table1 set data1 = data1 || '111' where data1 > '0' PLAN (TEST_TABLE1 INDEX (TEST_TABLE1_DATA1)) -----Statistics----- Reads = 13344 Writes = 20646 Fetches = 12031944 Marks = 3534188 CurrentMemory = 1547480 MaxMemory = 1899588 NumBuffers = 75 Execute time = 47485 -----Detail statistics----- read_idx_count TEST_TABLE1 = 1000000 update_count TEST_TABLE1 = 1000000 -----End------ Commit Transaction Start Transaction: consistency no_auto_undo ExecSQL: select Count(*) from test_table1 PLAN (TEST_TABLE1 NATURAL) -----Statistics----- Reads = 19595 Writes = 18665 Fetches = 12095115 Marks = 3008930 CurrentMemory = 1191616 MaxMemory = 1899588 NumBuffers = 75 Execute time = 31000 -----Detail statistics----- purge_count TEST_TABLE1 = 1000000 read_seq_count TEST_TABLE1 = 1000000 -----End------ Commit Transaction Start Transaction: consistency no_auto_undo ExecSQL: update Test_table1 set data1 = data1 || '111' where data1 > '0' PLAN (TEST_TABLE1 INDEX (TEST_TABLE1_DATA1)) -----Statistics----- Reads = 29800 Writes = 28399 Fetches = 15328674 Marks = 5162189 CurrentMemory = 1549144 MaxMemory = 1904704 NumBuffers = 75 Execute time = 58469 -----Detail statistics----- read_idx_count TEST_TABLE1 = 1000000 update_count TEST_TABLE1 = 1000000 -----End------ Commit Transaction Скрипт 2 Start Transaction: consistency no_auto_undo ExecSQL: update Test_table1 set data1 = data1 || '111' where data1 > '0' PLAN (TEST_TABLE1 INDEX (TEST_TABLE1_DATA1)) -----Statistics----- Reads = 13344 Writes = 20646 Fetches = 12031944 Marks = 3534188 CurrentMemory = 1547480 MaxMemory = 1899588 NumBuffers = 75 Execute time = 47422 -----Detail statistics----- read_idx_count TEST_TABLE1 = 1000000 update_count TEST_TABLE1 = 1000000 -----End------ Commit Transaction Start Transaction: consistency no_auto_undo ExecSQL: update Test_table1 set data1 = data1 || '111' where data1 > '0' PLAN (TEST_TABLE1 INDEX (TEST_TABLE1_DATA1)) -----Statistics----- Reads = 22075 Writes = 471167 Fetches = 22286748 Marks = 6616967 CurrentMemory = 1547816 MaxMemory = 1903656 NumBuffers = 75 Execute time = 242422 -----Detail statistics----- purge_count TEST_TABLE1 = 1000000 read_idx_count TEST_TABLE1 = 1000000 update_count TEST_TABLE1 = 1000000 -----End------ Commit Transaction Ясное дело, что во втором случае writes на порядок больше, но почему так получается? Update медленнее собирает мусор, чем Select? -- С уважением, Евгений