2016-05-24 3 views
1

Kann mir jemand sagen: „Gibt es irgendwelche Prioritäten innerhalb DDL und DML-Befehle?“Läuft die parallele Ausführung in SSIS korrekt?

Weil ich auf ein Szenario kam, wo ich ein SSIS-Paket, wo in dem ich eine Datenfluß Aufgabe in Steuerfluss haben, deren Aufgabe ist es, Daten aus der Flatfile-Quelle (Dateiname: Table_A mit 50 Datensätzen) in das OLEDB-Ziel (Table_A) zu übertragen. Ich habe eine andere Aufgabe namens Ausführen von SQL Server-Befehl Task in der gleichen Kontrolle Flow-Bereich, die ganze Daten aus der gleichen Tabelle (Table_A) löscht.

Nachdem ich dieses Paket zum ersten Mal ausgeführt habe, habe ich beobachtet, dass beide Aufgaben parallel ausgeführt werden.

1. Lauf: Beide Aufgaben wurden erfolgreich mit grünen Häkchen ausgeführt. Es gab Daten in der Datenbank (alle 10 Datensätze). Die Daten wurden nicht durch die Löschaufgabe gelöscht.

2. Lauf: Beide Aufgaben erfolgreich mit grünen Häkchen ausgeführt .. Alle Daten wurden gelöscht.

3. Lauf: Beide Aufgaben erfolgreich mit grünen Häkchen ausgeführt .. Es gab keine Daten und danach, wie oft ich das Paket ausführen, sah ich, dass Daten nicht in der Tabelle vorhanden war.

Jetzt kann jemand sagen, welche Aufgabe ausgeführt wurde und warum habe ich Daten im ersten Lauf gesehen, und ich sah keine Daten aus dem zweiten Lauf.

Antwort

4

Ja, wenn es keine Vorrangbedingungen gibt, die die Ausführung der Aufgaben in einer bestimmten Reihenfolge erzwingen, werden sie parallel ausgeführt. Es gibt keine Garantie, die um sie Start/Ziel in

Die logische Erklärung für das, was Sie gesehen haben, ist:.

1. Run - Die Delete-Aufgabe beendet zuerst, und dann bevölkerte die Dataflow Aufgabe der Tabelle

2nd Run, und alle nachfolgenden Runs, die DataFlow-Task wurde zuerst beendet, und die Delete-Task wurde zuletzt beendet und löschte alle Daten.

Verwandte Themen