从国外数据库中提取数据最快的方法是什么
What is the fastest way of pulling data from a foreign database
我需要从存储在 MSSQL 数据库中的单个 table 中提取数据。然后,数据被存储在 AX 中的分段 table 中,并根据业务逻辑从那里进行处理。
性能是这个项目的关键因素。
现在我正在研究使用 X++ 代码从 MSSQL 数据库检索数据的可能性,发现以下博客:
Connecting to Databases through X++
基本上有不同的方法可以用于这项工作:
- ODBC - 开放式数据库连接
- OLEDB - 对象链接和嵌入
- ADO - ActiveX 数据对象
- 连接Class
现在我希望有人可以提供意见,说明哪一个是更可取的以及为什么(特别是在性能方面)。
欢迎任何意见。
连接 class 不是有效选项,因为它连接到 AX 所连接的同一数据库,因此您的选择归结为 ODBC、OLEDB 和 ADO/.NET 方式。
就我个人而言,我会选择 .NET 集成方式(在您的 link 中称为 OleDB),但会使用 System.Data.SqlClient
而不是 System.Data.OleDb
,因为它本身是用 .NET 编写的。如果您的代码编译为 CIL,那应该会给您最好的结果。
无论您选择哪种检索选项,您实际上都应该构建一个记录插入列表并执行基于集合的插入,而不是 optimize insert performance。
这听起来像是 Ax 2012 中 Data Import/Export framework 的工作。
我需要从存储在 MSSQL 数据库中的单个 table 中提取数据。然后,数据被存储在 AX 中的分段 table 中,并根据业务逻辑从那里进行处理。
性能是这个项目的关键因素。
现在我正在研究使用 X++ 代码从 MSSQL 数据库检索数据的可能性,发现以下博客:
Connecting to Databases through X++
基本上有不同的方法可以用于这项工作:
- ODBC - 开放式数据库连接
- OLEDB - 对象链接和嵌入
- ADO - ActiveX 数据对象
- 连接Class
现在我希望有人可以提供意见,说明哪一个是更可取的以及为什么(特别是在性能方面)。
欢迎任何意见。
连接 class 不是有效选项,因为它连接到 AX 所连接的同一数据库,因此您的选择归结为 ODBC、OLEDB 和 ADO/.NET 方式。
就我个人而言,我会选择 .NET 集成方式(在您的 link 中称为 OleDB),但会使用 System.Data.SqlClient
而不是 System.Data.OleDb
,因为它本身是用 .NET 编写的。如果您的代码编译为 CIL,那应该会给您最好的结果。
无论您选择哪种检索选项,您实际上都应该构建一个记录插入列表并执行基于集合的插入,而不是 optimize insert performance。
这听起来像是 Ax 2012 中 Data Import/Export framework 的工作。