哪个更好更快?

问题描述 投票:0回答:1

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

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

  • 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

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();
microsoft-dynamics x++ dynamics-ax-2012
1个回答
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_recordsetRecordInsertList,如果没有。我从来没有理由使用UnitOfWork

© www.soinside.com 2019 - 2024. All rights reserved.