Axapta 从外部数据库中提取数据的最快方法是什么

Axapta 从外部数据库中提取数据的最快方法是什么,axapta,dynamics-ax-2012,x++,Axapta,Dynamics Ax 2012,X++,我需要从MSSQL数据库中存储的单个表中提取数据。然后,数据存储在AX中的一个暂存表中,并根据业务逻辑从中进行处理 性能是本项目的关键因素 现在我正在研究使用X++代码从MSSQL数据库检索数据的可能性,并发现以下博客: 基本上有不同的方法可用于这项工作: ODBC-开放数据库连接 OLEDB-对象链接和嵌入 ADO-ActiveX数据对象 连接类 现在我希望有人能给出哪一个更受欢迎以及为什么(特别是在性能方面)的建议 欢迎任何输入。连接类不是有效选项,因为它连接到AX连接到的同一个数据库

我需要从MSSQL数据库中存储的单个表中提取数据。然后,数据存储在AX中的一个暂存表中,并根据业务逻辑从中进行处理

性能是本项目的关键因素

现在我正在研究使用X++代码从MSSQL数据库检索数据的可能性,并发现以下博客:

基本上有不同的方法可用于这项工作:

  • ODBC-开放数据库连接
  • OLEDB-对象链接和嵌入
  • ADO-ActiveX数据对象
  • 连接类
现在我希望有人能给出哪一个更受欢迎以及为什么(特别是在性能方面)的建议


欢迎任何输入。

连接类不是有效选项,因为它连接到AX连接到的同一个数据库,所以您的选择可以归结为ODBC、OLEDB和ADO/.NET方式

就我个人而言,我会选择.NET集成方式(在链接中称为OleDB),但会使用
System.Data.SqlClient
而不是
System.Data.OleDB
,因为它本机是在.NET中编写的。如果您的代码被编译为CIL,那么应该会得到最好的结果


无论您选择何种检索选项,您都应该真正构建recordinsertlist,并执行基于集合的插入操作。

这听起来像是Ax 2012中的一项工作。

感谢您的回复。这也是很好的输入。我没有想到这个方向。通过谷歌搜索,我发现了一个使用ODBC的DIXF演练。我目前还不清楚,通过在类中实现连接(比如ODBC或OLeDB),使用DIXF从数据库导入的优点/缺点。我赞成您的答案,因为这是一个很好的选择,我没有考虑。你能详细说明一下这是如何工作的吗?也许这对OP和我来说已经足够了,但是一个更详细的答案可能会说服其他人为什么它是有用的和一个好的解决方案(考虑到AX版本,可能比我的更好)。还研究了DIXF。最后,我决定使用OLEDB并实现SysOperation框架,这样代码就可以作为批处理作业在服务器上执行。看起来工作少了,对发生的事情有了更多的控制。该解决方案的性能完全满足项目要求。