![]() |
#28 |
Участник
|
Использование RecordInsertList предполагает вызов метода insertDatabase() в самом конце для сброса оставшихся в буфере записей, более того, без вызова этого метода никто не гарантирует, что какие-либо записи вообще будут вставлены. Таким образом, этот метод может служить в т.ч. для ожидания завершения предыдущих асинхронных вставок, если предположить, что указанный класс на самом деле выполняет их асинхронно. Что же касается массовых вставок и параллельной обработки, то интересно обратиться к Inside Dynamics AX 2012:
Цитата:
Если среда времени выполнения Microsoft Dynamics AX обнаруживает, что достаточное для формирования пакета количество записей было добавлено в объект RecordInsertList, то записи упаковываются, передаются на сервер базы данных и вставляются в индивидуальном порядке в требуемую таблицу. Данная проверка выполняется при вызове метода add. Когда из прикладной логики вызывается метод insertDatabase, то с использованием того же механизма вставляются оставшиеся записи.
Использование данных классов вместо сценария с использованием оператора while select дает следующее преимущество: выполняется меньшее количество обращений AOS к базе данных, поскольку одновременно отправляются несколько записей. Однако число операторов INSERT на уровне базы данных остается таким же. |
|
Теги |
recordinsertlist, recordsortedlist |
|
|