Службы SQL Server Integration Services (SSIS) перекомпилируют код C # при каждом запуске? - PullRequest
0 голосов
/ 01 февраля 2010

У нас есть процесс, который получает данные в режиме реального времени и добавляет записи в базу данных. Мы используем службы интеграции SQL Server 2008 для запуска нашего процесса извлечения нагрузки трансформации (ETL). Мы загружаем около 50 файлов с FTP-сайта, обрабатываем их и затем архивируем файлы.

Проблема в том, что обработка занимает около 17 с на файл, даже если файлы действительно маленькие (около 10 строк) и код обработки довольно прост Если посмотреть на нагрузку на машину, то она связана с процессором, и в сети, на диске или в памяти мало трафика.

Я подозреваю, что SSIS может перекомпилировать код C # при каждом запуске. Кто-нибудь сталкивался с подобными проблемами? Или вы без проблем использовали подобный процесс?

Существуют ли какие-либо инструменты, которые могут позволить нам профилировать пакет dtsx?

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Поскольку вы используете SSIS 2008, ваши задачи сценариев всегда предварительно компилируются.

1 голос
/ 02 февраля 2010

Вы уверены, что это в первую очередь задача скрипта?

У меня было несколько обширных скриптовых заданий, в которых было построено много словарей, было ли входящее значение в различных словарях в соответствии с безумной сложной бизнес-логикой, и я выполнял перевод или другую работу. Если вы строите словари один раз при инициализации задачи, а не по методу каждой строки, обработка, как вы могли ожидать, значительно улучшилась. Но это был особый случай.

Компоненты пакета будут проверены (либо в начале, либо непосредственно перед запуском каждого компонента потока управления), это некоторые накладные расходы, от которых нельзя избавиться.

Обрабатываете ли вы все файлы за один цикл в SSIS? В этом случае проверка потока данных не должна повторяться.

...