|
|
#9 |
|
Участник
|
Делал, когда пытался реализовать одновременный учет.
Создавал таблицу Транзакция, Автоинкрементный первичный ключ. Цитата:
Код: Вставка 1 миллиона записей по 1 записи Локальная база. Попытка без инкремента С инкрементом разница в процентах 1 19 секунд 157 миллисекунды 12 секунд 157 миллисекунды 7 секунд 158.3333333 2 19 секунд 423 миллисекунды 12 секунд 188 миллисекунды 7 секунд 158.3333333 Вставка 100000 по 1 записи SQL Server. Сервер удаленный. Сеть 100 мб/с Попытка без инкремента С инкрементом разница в процентах 1 1 минута 24 секунды 241 миллисекунда 41 секунда 245 миллисекунды 43 секунды 204.8780488 2 1 минута 24 секунды 241 миллисекунда 41 секунда 245 миллисекунды 43 секунды 204.8780488 Код: NoRecords:=1000000;
StartTime := CURRENTDATETIME;
FOR i:=1 TO NoRecords DO
BEGIN
CLEAR(Autoinc);
Autoinc.INSERT;
END;
EndTime:= CURRENTDATETIME;
MESSAGE(FORMAT(EndTime - StartTime));
StartTime := CURRENTDATETIME;
FOR i:=1 TO NoRecords DO
BEGIN
CLEAR(NoAutoInc);
IF NoAutoIncForEntry.FIND('+') THEN
NoAutoInc.Entry:=NoAutoIncForEntry.Entry+1
ELSE NoAutoInc.Entry:=1;
NoAutoInc.INSERT;
END;
EndTime:= CURRENTDATETIME;
MESSAGE(FORMAT(EndTime - StartTime));
NoAutoInc.DELETEALL;
Autoinc.DELETEALL;Вывод: Кроме существенной потери во времени, увеличивается траффик между клиентом и сервером. |
|
|