2009-04-30 3 views
0

У меня есть 2 таблицы (~ 4 миллиона строк), которые я должен выполнять вставке/обновлении при сопоставлении и удалении записей. Я довольно запутался в методе, который я должен использовать для дополнительной загрузки. Должен ли я использовать компонент Lookup или новый SQL-запрос слияния сервера? и будет ли слишком много различий в производительности?Как обрабатывать инкрементную нагрузку с большими наборами данных ssis

ответ

-2

Преждевременная оптимизация - это корень всего зла, я не знаю о ssis, но всегда рано думать об этом.

4 миллиона строк могут быть «большими» или «маленькими», в зависимости от типа данных и используемой конфигурации оборудования.

0

SSIS Lookup имеет три режима кэширования, которые являются ключевыми для получения наилучшей производительности. Если вы смотрите на большой стол, режим FULL Cache будет потреблять большую часть вашей памяти и может помешать работе. Если ваше место поиска маленькое, сохраните его в памяти. Вы также должны решить, изменяются ли данные, которые вы просматриваете, при обработке данных. Если да, то вы не хотите кэшировать.

Можете ли вы дать нам дополнительную информацию о том, что вы делаете, чтобы я мог сформулировать более точный ответ.

+0

В SSIS 2008 также есть новая функция, которая позволяет кэшировать данные поиска, инкрементно обновлять кеш и затем повторно использовать его в качестве кеша. –

1

Я столкнулся с этой точной проблемой несколько раз, и мне всегда приходилось прибегать к загрузке полного набора данных в SQL-сервер через ETL, а затем манипулировать хранящимися процессами. Казалось, что это все равно, слишком долго обновляя данные «на лету» в преобразованиях SSIS.

+0

Вы использовали SSIS 2008, и вы пытались использовать MERGE? –