Выполнение задачи SSIS занимает слишком много времени для проверки

У меня есть задача потока данных SSIS, проверка которой после выполнения занимает почти 20 минут. Это независимо от того, работаю ли я непосредственно в VS или выполняю пакет из SSMS. До внесения нескольких изменений задача выполнялась за пару минут.

Единственные изменения, которые я сделал, были:

  1. Изменение входных данных OLE DB (два в этой задаче) с прямого подключения к исходным таблицам на подключение к представлениям таблицы. Эти представления очень просты — просто присоединитесь к другой крошечной таблице, чтобы добавить определенный столбец. Вход один содержит около 3 миллионов строк, вход 2 — несколько сотен тысяч.

  2. Изменено существующее преобразование поиска (я думал, что к лучшему), чтобы изменить соединение на «SELECT col1, col2 FROM» вместо прямого подключения к этой таблице, которая очень широка.

До внесения этих изменений эта задача выполнялась за несколько минут. Теперь, хотя часть потока данных завершается за 1-2 минуты, каждая фаза проверки (а их две) занимает 17-20 минут.

Есть ли что-то в использовании представлений в качестве входных данных, что усложняет фазу проверки?

Снимок экрана отладки


person tad    schedule 08.03.2020    source источник


Ответы (1)


Общий подход - отменить/повторить шаг за шагом и увидеть разницу. Таким образом, вы вызываете преобразование локализации проблемы.
Опыт показывает, что второе изменение повышает производительность как при проверке, так и во время выполнения. SELECT * FROM (выполняется, когда вы выбираете таблицу из списка в Lookup) выполняется и проверяется не быстрее, чем SELECT Col1, Col2 FROM. Кроме того, таким образом вы уменьшили объем оперативной памяти.
Корнем проблемы может быть переключение с таблицы на представление с помощью объединений. Представление может иметь план выполнения с ресурсоемкими операциями, такими как вложенный цикл и т. д. Итак, я бы проверил план выполнения представления и сначала поиграл с отменой этого переключателя в пакете SSIS.

person Ferdipux    schedule 10.03.2020