哪个更好,更快?

时间:2018-12-14 12:51:55

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

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

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

  • RecordInsertList
  • insert_recordset
  • UnitOfWork

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();

1 个答案:

答案 0 :(得分:3)

insert_recordsetRecordInsertList更快(但功能上也更多)(请参阅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