2016-02-01 18 views
4

Мне нужно извлечь данные из одной таблицы, хранящейся в базе данных MSSQL. Затем данные сохраняются в промежуточной таблице в AX, откуда она обрабатывается в соответствии с бизнес-логикой.Каков самый быстрый способ потянуть данные из зарубежной базы данных

Производительность является ключевым фактором в этом проекте.

Теперь я делаю некоторые исследования о том, каковы возможности для извлечения данных из базы данных MSSQL с X ++ кода и нашел следующий блог:

Connecting to Databases through X++

В основном существуют различные способы, которые могут быть использованы для этого усилие:

  • ODBC - Open Data Base Connectivity
  • OLEDB - связывание и внедрение объектов
  • ADO - ActiveX Data Objects
  • Класс соединения

Теперь я надеялся, что кто-то может дать ввод которых один является preferrable и почему (особенно в отношении производительности).

Любой ввод оценивается.

ответ

7

Класс подключения не является допустимым вариантом, поскольку он подключается к той же базе данных, к которой подключен AX, поэтому ваши варианты сводятся к ODBC, OLEDB и ADO/.NET.

Лично я хотел бы использовать интегрированный способ .NET (называемый OleDB в вашей ссылке), но использовал бы System.Data.SqlClient вместо System.Data.OleDb, потому что он изначально написан на .NET. Если ваш код скомпилирован в CIL, который должен дать вам наилучшие результаты.

Независимо от того, какой вариант для поиска вы выбираете, вы должны действительно создавать список записей и выполнять набор на основе вставки вместо optimize insert performance.

+0

я реализовал задачу, используя OLEDB. Также рассмотрел DIXF. В конце я решил пойти с OLEDB и реализовать SysOperation Framework, поэтому код может быть выполнен как пакетное задание на сервере. Казалось, что меньше работы и больше контроля над тем, что происходит. Эта производительность решений полностью соответствует требованиям проектов. – elToro

5

Это звучит как задание для Data Import/Export framework в Ax 2012

+0

Благодарим за отзыв. Это также очень хороший вклад. Я не думал об этом. Выполняя некоторые поисковые запросы, я нашел прохождение для DIXF с ODBC https://ax.help.dynamics.com/en/wiki/walkthrough-import-data-from-an-odbc-data-source-dixf-dmf/. В настоящее время я не понимаю, какие из преимуществ/недостатков использования DIXF можно импортировать из базы данных, реализуя соединение (например, ODBC или OLEDB) в классе. – elToro

+2

Привет, я поддержал ваш ответ, поскольку это очень хороший вариант, который я не смог рассмотреть. Не могли бы вы подробно рассказать о том, как это будет работать? Возможно, этого достаточно для OP и меня, но ответ с более подробной информацией может убедить других, почему это полезно и хорошее решение (возможно, лучше, чем мой вариант AX). –

Смежные вопросы