首页 > 解决方案 > 其中哪一个更好更快?

问题描述

关于性能,哪一个是“最好的”和最快的?

是否存在我们不应该使用它们中的任何一个甚至只使用其中一个的情况?毕竟,每个人都扮演着同样的角色。

记录插入列表

RecordInsertList insertList = new RecordInsertList(tableNum(TableExample));
// some business logic...

insertList.add(buffer1);
insertList.add(buffer2);
insertList.add(buffer3);

insertList.insertDataBase();

插入记录集

insert_recordset buffer (myNum, mySum)
select myNum, sum(myValue) from otherBuffer
    group by myNum 
    where otherBuffer.myNum == 100;

工作单位

UnitOfWork uow = new UnitOfWork();

// some business logic...
uow.insertOnSaveChanges(buffer1);
uow.insertOnSaveChanges(buffer2);
uow.insertOnSaveChanges(buffer3);
uow.saveChanges();

标签: microsoft-dynamicsx++dynamics-ax-2012

解决方案


insert_recordsetRecordInsertList(请参阅优化记录插入)更快(但功能也更有限)。UnitOfWork更多的是关于数据完整性而不是性能(请参阅如何:使用 UnitOfWork 类来管理数据库事务)。我不知道它的性能如何比较。AX 2012 UnitOfWork Performance Series Part 5似乎已经涵盖了这一点,但不再可用。我想一个类似于AX Performance Insert vs RecordInsertList描述的快速测试工作应该给出一些提示。

这包括“最快”。“最佳”是另一个问题,如果没有有关您情况的更多信息,我无法客观地回答。

就个人而言,insert_recordset如果可能的RecordInsertList话,我会去。我从来没有理由使用UnitOfWork.


推荐阅读