![]() |
#3 |
Участник
|
Кстати, да, если делать отдельный ttsbegin/ttscommit для каждой записи, все вроде работает. Я, наверное, на этом и остановлюсь.
X++: Table1 table1Loop; Table1 table1; int i; ; while select table1Loop { i++; ttsbegin; table1 = Table1::findRec(table1Loop.RecId, true); table1.Field1 = strfmt("Blah %1", i); table1.doupdate(); ttscommit; } Но мне почему-то казалось, что групповое обновление записей (скажем, 500 или 1000 в одной транзакции) на больших объемах даст ощутимый прирост производительности. Я не прав? И вот такой вот код уже не работает: X++: Table1 table1Loop; Table1 table1; int bulk = 5000; // 5; int i; ; ttsbegin; while select table1Loop { i++; table1 = Table1::findRec(table1Loop.RecId, true); table1.Field1 = strfmt("Blah %1", i); table1.doupdate(); if (i mod bulk == 0) { ttscommit; ttsbegin; } } |
|