Задача потока данных служб SSIS зависает на этапе предэксплуатации
У меня есть задача потока данных, которая висит на исключение.
Поток прост, выполняет два запроса к разным таблицам (оба с парой объединений), затем сортирует и объединяет результаты с помощью общего идентификатора, добавляет статический столбец ко всем записям, сохраняет количество строк в пользовательской переменной для последующего использования. использовать и, наконец, вставляет в таблицу на другой БД. Мы используем OLE DB Sources и Destination. Источник - MSSQL 2000, а пункт назначения - MSSQL 2012
Симптомы:
Информация: 0x40043006 в таблице изолированной программной среды загрузки, SSIS. Трубопровод: начинается подготовка к выполнению.
Информация: 0x40043007 в таблице изолированной программной среды загрузки, SSIS. Конвейер: начинается этап перед выполнением.
И не более того, пока исключение не будет прекращено.Да, это работало раньше. И да, мы использовали один запрос (в хранимой процедуре) для этого ETL, но мы хотели перенести все шаги в SSIS.
Неудачные решения:
Там нет поисков.Размер буфера по умолчанию для потока задач был увеличен до 40485760, а затем до 80971520.Максимальное количество строк в буфере для задачи было установлено равным 1000000.Задержка проверки была установлена в True для задачи.Все элементы в задаче были установлены в Validate External Data на False.Оба запроса имели:ВЫКЛЮЧИТЕ FMTONLY;
ВКЛЮЧИТЬ СЧЕТ;
добавлено в начале.Оба запроса имелиMAXDOP установить на 1.Настройка проекта »s Запустите 64-разрядную среду выполнения в False.Изменен целевой груз сТаблица или вид вТаблица или Вид - Быстрая загрузка без замков или ограничений.Установите количество строк в партии до 1000 для быстрой загрузки.Некоторые обходные пути предлагают разделить поток задач на два или более потоков задач. Но это невозможно, поскольку нам нужно объединить информацию, найденную в обоих исходных запросах.
Дополнительные биты: Я действительно надеюсь, что кто-то может мне помочь. Я довольно новичок в SSIS, это первый раз, когда я его использую. Я обычно работаю с Pentaho для своего ETL, но клиенту нужно решение, которое будет реализовано в SSIS. Я'я боролся с этой проблемой уже пару дней, и яЯ начинаю исчерпывать идеи, чтобы решить это.
При запуске через командную строку он тоже зависает, и я получаю следующий вывод:
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.23
Source: Load Sandbox Table
Validating: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.25
Source: Load Sandbox Table
Validating: 100% complete
End Progress
Warning: 2013-03-19 14:36:26.26
Code: 0x80047076
Source: Load Sandbox Table SSIS.Pipeline
Description: The output column "ITEM_OID (1)" (47) on output "Merge Join Outp
ut" (28) and component "Merge Join" (11) is not subsequently used in the Data Fl
ow task. Removing this unused output column can increase Data Flow task performa
nce.
End Warning
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 50% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 62% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 75% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 87% complete
End Progress
Progress: 2013-03-19 14:36:26.27
Source: Load Sandbox Table
Prepare for Execute: 100% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.31
Source: Load Sandbox Table
Pre-Execute: 25% complete
End Progress
Progress: 2013-03-19 14:36:26.34
Source: Load Sandbox Table
Pre-Execute: 37% complete
End Progress
Progress: 2013-03-19 14:36:45.69
Source: Load Sandbox Table
Pre-Execute: 50% complete
End Progress
После этого он снова зависает.
РЕШЕНИЕ (Размещать это здесь, потому что я могуя не могу ответить на свой вопрос еще 5 часовя сделаю это, когда ям разрешено.)
Я наконец получил это.
Оказывается, есть проблема с проверкой, но не только элементы SSIS проходят эту проверку, как указано в четвертом неудачном решении вопроса.
CONNECTIONS также проходят проверку и имеют собственное свойство Delay Validation, для которого необходимо установить значение true.
После этого время исключения увеличилось с 40 + минут или бездействия до менее минуты для полного процесса (это всего лишь один шаг из гораздо большего процесса)
Я надеюсь, что люди с такой же проблемой могут легко найти это решение, потому чтоЕсть много людей, сталкивающихся с этой проблемой, и почти нет решений, размещенных в Интернете.
В двух словах: Проверьте, что все ваши элементы участвуют в задаче,в том числе для соединений с БД свойство задержки проверки установлено в значение True.