Показать сообщение отдельно
Старый 17.09.2013, 11:45   #22  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Мне казалось, что RecordInsertList - асинхронный. То есть - в момент отправки заполненного буфера на сервер, он использует какую-то асинхронную форму вызова Native Client, в результате чего приложение не ждет завершения записи пакета. Если у тебя перебор 100000 записей в одной таблице с их трансформацией и перекладкой у другую, то в случае RecordInsertList у тебя система будет ждать только в самом конце (в момент RIL.insertDatabase()) и недолго (поскольку в буффере, допустим, 1500-2000 записей), а в остальных случаях - заполнение очередного буфера будет идти в параллель с записью старого. В случае же использования RecordSortedList, у тебя в конце будет идти ожидание вставки 100000 записей, что в итоге может привести к проигрышу в общем времени исполнения.

DISCLAIMER: Хотя я, вроде бы, где-то слышал про асинхронный режим, я до конца в этом не уверен; Если будете писать подобные операции - попробуйте и RecordInsertList и RecordSortedList и расскажите заинтересованным лицам...