Я уверен, что это довольно расплывчатый вопрос, на который трудно ответить, но я был бы признателен за любые общие мысли по этому вопросу.
Позвольте мне дать вам краткий обзор.
Десять лет назад мы использовали для записи загрузок данных, считывая входные плоские файлы из устаревших приложений, и загружали их в наш Datamart. Первоначально наши программы загрузки были написаны на VB6 и прокручивались через плоский файл, и для каждой записи выполнялся этот общий процесс:
1) Посмотрите на запись. Если найден, обновите его
2) еще вставить новую запись
Затем мы закончили тем, что изменили этот процесс, чтобы использовать SQL Server для DTS плоского файла во временной таблице, а затем мы выполнили бы массивное базовое соединение наборов для временной таблицы с целевой производственной таблицей, взяв данные из временной таблицы и использовать его для обновления целевой таблицы. Записи, которые не присоединились, были вставлены.
Это упрощение процесса, но, по сути, процесс перешел от итеративного подхода к «набору на основе», больше не выполняя обновления по 1 записи за раз. В результате мы получили огромный прирост производительности.
Затем мы создали, как мне кажется, мощный набор общих функций в DLL для выполнения общих функций / шаблонов обновления с использованием этого подхода. Это значительно абстрагировало разработку и действительно сократило время разработки.
Затем появился Informatica PowerCenter, инструмент ETL, и MGT хочет стандартизировать инструмент и переписать старые нагрузки VB, которые использовали DTS.
Я слышал, что PowerCenter обрабатывает записи итеративно, но я знаю, что он выполняет некоторые приемы оптимизации, поэтому мне любопытно, как Informatica будет работать.
Есть ли у кого-нибудь опыт использования DTS или SSIS, чтобы иметь возможность сделать предварительную настройку производительности в отношении того, что в целом будет лучше?