Мне казалось, что RecordInsertList - асинхронный. То есть - в момент отправки заполненного буфера на сервер, он использует какую-то асинхронную форму вызова Native Client, в результате чего приложение не ждет завершения записи пакета. Если у тебя перебор 100000 записей в одной таблице с их трансформацией и перекладкой у другую, то в случае RecordInsertList у тебя система будет ждать только в самом конце (в момент RIL.insertDatabase()) и недолго (поскольку в буффере, допустим, 1500-2000 записей), а в остальных случаях - заполнение очередного буфера будет идти в параллель с записью старого. В случае же использования RecordSortedList, у тебя в конце будет идти ожидание вставки 100000 записей, что в итоге может привести к проигрышу в общем времени исполнения.
DISCLAIMER: Хотя я, вроде бы, где-то слышал про асинхронный режим, я до конца в этом не уверен; Если будете писать подобные операции - попробуйте и RecordInsertList и RecordSortedList и расскажите заинтересованным лицам...
|