In der Anfangsphase befand sich das Paket im Paketbereitstellungsmodell (SSIS 2008), das die Daten parallel aus einer lokalen Datenbank in eine lokale CSV-Datei exportiert.SSIS 2012 Paket hängt nach dem Zufallsprinzip
Ich habe es in Project Deployment Model konvertiert und jetzt die gleiche Parallelität existiert aber durch Aufrufen eines untergeordneten Pakets (mit 26 Threads) durch Ausführen von Package Task (früher war es durch Execute Process Task) mit der Execute-Out-of -Process in-order, um die Ressourcen zu verwenden
Das untergeordnete Paket wählt einen zufälligen Kunden aus 15K-Kunden aus und exportiert seine zugehörigen Daten aus einer Ansicht in die CSV-Datei.
<> Der Kunde in einer Tabelle angeordnet sind, und alle Fäden lesen die Tabelle und ein Mutex über sie angelegt wird, um die TABLOCKX verwenden, je nachdem, welcher Thread bekommt den Schreibzugriff wird zuerst die Kunden Abhol- und modifiziert die Lade den Status auf 'Fortschritt'. Die anderen Threads, die auf den Schreibzugriff warten, folgen demselben Prozess.
Der Prozess in jedem Thread wird für alle Kunden, die „forloop“ Container
Für die 576 Hinrichtung wiederholt, es gut exportiert und schnell, aber überraschend hängt er an der 576. Ausführung eines zufälligen Kunden für mehrere Minuten . Ich habe versucht, es mehrere Male zu wiederholen und es hängt an der gleichen Stelle auf.
Ihre Hilfe zu diesem wird sehr geschätzt!
PS: Das Problem ist nicht, dass es in der früheren Version von meinem Paket
gelöst. Können Sie erklären, welche SSIS-Aufgaben, SQL-Abfragen und Ausdrücke die zufälligen Kunden bitte auswählen. Ist es beispielsweise ein Schleifencontainer mit einer SQL-Aufgabe? –
Stellen Sie sich vor, Sie versuchen, dies zu lösen, wäre die angegebene Information ausreichend – TheGameiswar
Überwachen Sie bestehende Verbindungen zu Ihrem SQL Server? Schließen Sie jede CSV-Datei sauber? –