SSIS Data Flow Task zawiesza się w trakcie wykonywania fazy Pre-excecute

Mam zadanie przepływu danych, które jest zawieszone na egzekucji.
Przepływ jest prosty, sprawia, że ​​dwa zapytania do różnych tabel (oba z kilkoma złączeniami), następnie sortują i łączą otuputy przez wspólny identyfikator, dodają statyczną kolumnę do wszystkich rekordów, zapisują liczbę wierszy w zmiennej użytkownika na później użyj i ostatecznie wstawia do tabeli na innym DB. Używamy źródeł i miejsca docelowego DB OLE. Źródłem jest MSSQL 2000, a miejscem docelowym jest MSSQL 2012

Objawy:

Podczas wykonywania, przepływ danych uzyskuje zwykłą żółtą ikonę „biegnącą”. Jednak po dwukrotnym kliknięciu, aby zobaczyć przepływ danych, żaden z elementów nie ma żółtego, czerwonego lub zielonego znaku.Trwa to przez długi czas, początkowo trwało około 20 minut, po czym zaczęło się wydłużać lub po prostu w ogóle nie powracać.Wyniki pokazują:
Informacje: 0x40043006 na stronie Load Sandbox Table, rozpoczyna się faza SSIS.Pipeline: Przygotowanie do wykonania.
Informacje: 0x40043007 przy obciążeniu tabeli piaskownicy, SSIS.Pipeline: rozpoczyna się faza przed wykonaniem.
I nic więcej, dopóki egzekucja nie zostanie zatrzymana.Tak, to działało wcześniej. I tak, użyliśmy pojedynczego zapytania (w procedurze zapisanej w bazie), aby wykonać ten ETL, ale chcieliśmy przenieść wszystkie kroki do SSIS.

Nieudane rozwiązania:

Brak wyszukiwań.Domyślny rozmiar bufora dla przepływu zadań został zwiększony do 40485760, a następnie do 80971520.Domyślne wiersze maksimum bufora dla zadania zostały ustawione na 1000000.Dla zadania ustalono poprawność opóźnienia.Wszystkie elementy wewnątrz zadania zostały ustawione jako Sprawdź poprawność danych zewnętrznych na Fałsz.Oba zapytania miały:
USTAW FMTONLY OFF;
USTAW NOCOUNT ON;
dodane na początku.Oba pytania miałyMAXDOP ustaw na 1.Ustawienie projektu Run 64 bit Runtime na False.Zmieniono obciążenie docelowe zTabela lub widok doTabela lub widok - szybkie ładowanie bez blokad i ograniczeń.Ustaw wiersze na partię na 1000, aby szybko załadować.Niektóre obejścia proponują rozdzielenie przepływu zadań na dwa lub więcej przepływów zadań. Ale nie jest to możliwe, ponieważ musimy połączyć informacje znalezione na obu zapytaniach źródłowych.

Dodatkowe bity: Naprawdę mam nadzieję, że ktoś może mi pomóc. Jestem całkiem nowy w SSIS, po raz pierwszy go używam. Zwykle pracuję z Pentaho przy moim ETL, ale klient potrzebuje rozwiązania, które ma zostać zaimplementowane w SSIS. Walczę z tym problemem już od kilku dni i zaczynam tracić pomysły na jego rozwiązanie.

Po przejściu przez wiersz poleceń utknie on również i otrzymam następujące dane wyjściowe:

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

Potem znów zamarza.

ROZWIĄZANIE (Zamieszczając to tutaj, ponieważ nie mogę odpowiedzieć na moje własne pytanie przez kolejne 5 godzin, zrobię to, kiedy będę mógł).
W końcu to zrozumiałem.
Okazuje się, że istnieje problem z walidacją, ale nie tylko elementy SSIS przechodzą przez tę walidację, jak stwierdzono w czwartym nieudanym rozwiązaniu pytania.
POŁĄCZENIA są również sprawdzane i mają własną właściwość sprawdzania poprawności opóźnienia, którą należy ustawić na wartość true.
Po tym czasie czas przejścia minął od ponad 40 minut lub bez biegu do mniej niż minuty dla pełnego procesu (to tylko jeden krok znacznie większego procesu)
Mam nadzieję, że ludzie z tym samym problemem mogą łatwo znaleźć to rozwiązanie, ponieważ wiele osób napotyka na ten problem i prawie nie ma rozwiązań opublikowanych online.

W skrócie: Sprawdź, czy wszystkie elementy zaangażowane w zadanie,włącznie z połączenia DB mają właściwość weryfikacji opóźnienia ustawioną na True.

questionAnswers(9)

yourAnswerToTheQuestion