Поиск SSIS с отфильтрованной справочной таблицей - PullRequest
0 голосов
/ 09 июня 2010

Я пытаюсь улучшить производительность пакета служб SSIS.

Одна вещь, с которой я начал, - это фильтрация справочной таблицы поисков.До сих пор я использовал таблицу в качестве справочной таблицы для этого поиска.

Первым улучшением было изменение таблицы на предложение SQL, которое выбирает только те столбцы, которые мне нужны из этой таблицы.

Далее я хочу загрузить в эту таблицу только те записи, которые я знаю, что ябуду использовать наверняка.Если я поддерживаю его в этом состоянии, я загружу 300 000 строк или более (огромные строки с двоичным содержимым около 500 КБ каждая) и использую их только около 100.

Я бы добавил несколькоФильтры в запросе SQL, который устанавливает справочную таблицу поиска, НО, в этом фильтре мне нужно использовать ВСЕ идентификаторы строк, загруженных в мой источник OLE DB.

Есть ли способ сделать это?

Я думал о загрузке каждой строки за раз, используя команду OleDB вместо Lookup, но, кроме того, что занимал много времени, я мог бы загрузитьто же самое 100 раз для 100 разных строк, когда я мог бы просто загрузить его один раз в поиске и использовать его 100 раз ...

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

Любые идеи очень ценятся.

1 Ответ

0 голосов
/ 09 июня 2010

Одна из возможностей - сначала направить отдельные идентификаторы в постоянную / временную таблицу в одном потоке данных, а затем использовать его при поиске (с объединением) в более позднем потоке данных (возможно, вам придется отложить проверку).*

Во многих наших ETL-пакетах мы сначала направляем данные в файл Raw, обрабатывая все преобразования типов и все, что происходит там.Затем, когда все эти преобразования были успешными, мы обрабатываем создание новых измерений, а затем факты, связанные с измерениями.

...