Я запускаю пакет SSIS, который содержит множество (7) операций чтения из одного плоского файла, загруженного из внешнего источника. В каждой среде (тестовой, подготовительной и производственной) постоянно наблюдается тупик в одном из потоков данных, который использует медленно изменяющееся измерение для обновления существующей таблицы SQL как новыми, так и измененными строками. У меня три группы выходят из SCD :
-Inferred Member Updates Выходные данные передаются непосредственно команде обновления OLE DB.
-Исторический атрибут переходит к производному столбцу, помещенному в рамку, который устанавливает дату удаления, а затем переходит к команде обновления OLE DB, затем переходит к объединенному окну, где он объединяется с последней группой Новый вывод.
-Новый вывод попадает в поле объединения вместе с выводом истории, затем в поле производного столбца, которое добавляет дату обновления / создания, а затем вставляет значения в ту же таблицу SQL, что и команда базы данных вывода предполагаемых элементов.
Единственная ошибка, которую я получаю в журнале, выглядит так:
«Транзакция (идентификатор процесса 170) зашла в тупик при блокировке ресурсов с другим процессом и была выбрана жертвой тупиковой ситуации. Повторите транзакцию».
Я мог бы поместить оператор (NOLOCK) в команды OLE db, но я читал, что это не выход.
Я использую инструменты данных SQL Server 2012 для исследования и редактирования пакета, но я не уверен, что делать дальше, чтобы найти проблему.
Я хочу сказать, что я новичок в программировании SSIS ... с этим в стороне ... Любая помощь будет принята с благодарностью, даже если она просто указывает мне на место, которое я не смотрел за помощью.