Компонент Lookup может быть проблемой для больших таблиц.Вы можете попробовать несколько вариантов.
Сначала используйте оператор SQL, который соединяет таблицу поиска с исходными данными.Это потребует нескольких задач потока данных.Ваш существующий поток данных будет выводиться в промежуточную таблицу назначения в базе данных.Затем вы можете создать новый поток данных, где источником является запрос, который присоединяет вашу таблицу поиска один раз для каждого поиска в промежуточной таблице.Примером запроса может быть:
SELECT lt1.detailsID1, lt2.detailsID2, <other StagingTable columns>
FROM StagingTable st
LEFT OUTER JOIN LookupTable lt1 ON st.ID1 = lt1.ID1
LEFT OUTER JOIN LookupTable lt2 ON st.ID2 = lt2.ID2
Поиск завершен как часть запроса SQL.
Другой вариант - выполнить процесс объединения с использованием компонентов потока данных.Обратите внимание, что он будет использовать много памяти на компьютере, на котором выполняется пакет служб SSIS.
Используя текущий поток данных, добавьте новый источник, который получает данные из таблицы поиска.Добавьте компонент Multicast в поток данных и создайте путь потока данных от исходных выходных данных к входу Multicast.
Добавьте компонент Merge Join и добавьте выходные данные из первичного источника в качестве левого входа и добавьте первыйМногоадресный вывод как правильный вход.Обратите внимание, что входные данные уже должны быть отсортированы в последовательности ключа соединения (ID1 для первого соединения и ID2 для второго соединения - см. Ниже).Настройте объединение слиянием как левое внешнее объединение с соответствием по столбцам ID1.Включить столбец DetailID1 в вывод
Добавить компонент сортировки и второе объединение слиянием.Выходные данные первого объединения слиянием поступают в компонент Sort.Установите ключ сортировки для столбца ID2.Выход Sort переходит ко второму компоненту Merge Join в качестве входа Left join.Второй выход Multicast поступает на второй вход Merge Join.Настройте второе объединение слиянием так же, как и первое объединение слиянием, но для столбца ID2.
Как видите, этот процесс требует гораздо больших усилий.Первое решение, вероятно, будет вашим лучшим решением, но вы должны сравнить решения для лучшей производительности.