关于性能,哪个是“最佳”和最快的?
是否存在我们不应该使用其中任何一个甚至不使用其中之一的情况?毕竟,每个人都扮演着相同的角色。
RecordInsertList
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
UnitOfWork uow = new UnitOfWork();
// some business logic...
uow.insertOnSaveChanges(buffer1);
uow.insertOnSaveChanges(buffer2);
uow.insertOnSaveChanges(buffer3);
uow.saveChanges();
答案 0 :(得分:3)
insert_recordset
比RecordInsertList
更快(但功能上也更多)(请参阅Optimizing Record Inserts)。 UnitOfWork
与其说是性能,不如说是数据的完整性(请参阅How To: Use the UnitOfWork Class to Manage Database Transactions)。我不知道它的性能如何与之比较。 AX 2012 UnitOfWork Performance Series Part 5似乎涵盖了这一点,但不再可用。我认为类似于AX Performance Insert vs RecordInsertList的快速测试工作应该给出一些提示。
涵盖“最快”。 “最佳”是另外一个问题,如果没有您的情况的进一步信息,我将无法客观地回答。
就个人而言,我尽可能地选择insert_recordset
,如果可能则选择RecordInsertList
。我从来没有理由使用UnitOfWork
。