Datenfluss-task in SSIS ist sehr langsam im Vergleich zu dem schreiben der sql-Abfrage in SQL Ausführen (task)
Ich bin neu in SSIS und habe ein paar Fragen
- Ich übertragen möchten 1,25,000 Zeilen aus einer Tabelle in eine andere in der gleichen Datenbank. Aber Wenn ich
Data Flow Task
, es ist zu viel Zeit. Ich habe versucht, mit einemADO NET Destination
sowie eineOLE DB Destination
aber die Leistung war nicht akzeptabel. Wenn ich schrieb die entsprechende Abfrage innerhalb einerExecute SQL Task
es bot eine akzeptable Leistung. Warum wird ein solcher Unterschied in der Leistung.INSERT INTO table1 select * from table2
- Basierend auf der ersten Beobachtung, änderte ich mein Paket. Es ist ausschließlich mit Vertretern der
Execute SQL Tasks
entweder mit einer direkten Abfrage oder eine gespeicherte Prozedur. Wenn ich mein problem lösen kann, nur anhand derExecute SQL Task
, dann warum sollte man die Verwendung von SSIS-wie so viele Dokumente und Artikel angeben. Ich habe gesehen, wie es ist zuverlässig, leicht zu pflegen und vergleichsweise schnell.
Haben Sie versucht, brechen die übertragung in Blöcke, z.B. 10K Zeilen gleichzeitig? Die Protokollierung kann traumatisch sein für große Operationen.
während der Verwendung der Datenfluss die Aufgabe, es selbst bricht die Zeile Betrag in 10k-partition und dann einfügen, ist dies die Ursache zu verlangsamen?
Haben Sie 'schnell laden' in der OLE DB-Ziel?
ja ich habe das schnelle laden auch. Aber nach dem Lesen der Antwort gepostet von billinkc, ich lass es bleiben mit all der task SQL Ausführen, und führen Sie es über den SQL-Agent. Ich bin jetzt zufrieden !
während der Verwendung der Datenfluss die Aufgabe, es selbst bricht die Zeile Betrag in 10k-partition und dann einfügen, ist dies die Ursache zu verlangsamen?
Haben Sie 'schnell laden' in der OLE DB-Ziel?
ja ich habe das schnelle laden auch. Aber nach dem Lesen der Antwort gepostet von billinkc, ich lass es bleiben mit all der task SQL Ausführen, und führen Sie es über den SQL-Agent. Ich bin jetzt zufrieden !
InformationsquelleAutor Teju MB | 2013-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unterschied in der Leistung
Gibt es viele Dinge, die verursachen könnten die Leistung einer "geraden" data flow task und den entsprechenden Task SQL Ausführen.
Execute SQL Task
s EINFÜGEN. Neuere Versionen von SSIS-Standard-Zugriffsmethode für die "Schnelle" version des Ziels. Dies verhält sich viel mehr wie das set-basierte äquivalent und führen zu besserer Leistung.Design-Paket
Es ist nichts falsch mit ein SSIS-Paket, das ist nur
Execute SQL Task
s. Wenn das problem ist leicht gelöst, durch das ausführen von Abfragen, dann würde ich darauf verzichten, SSIS vollständig aus und schreiben Sie die entsprechende gespeicherte Prozedur(en) und planen der SQL Server-Agent und fertig.Vielleicht. Was ich noch mag über die Verwendung von SSIS-auch bei "einfachen" Fällen wie diesem ist, kann es einen konsistenten lieferbar. Das mag nicht viel klingen, aber aus einem Pflege Perspektive, kann es hilfreich sein zu wissen, dass alles, mucking mit den Daten enthalten ist, in diese Quelle kontrolliert SSIS-Pakete. Ich habe nicht zu erinnern oder die Ausbildung der neuen person, die Aufgaben A-C sind "einfache" Sie sind also gespeicherte Prozeduren genannt, die aus einer SQL-Agent-Auftrag. Aufgaben D-J, oder K, sind sogar noch einfacher als dass so es ist einfach "in-line" - Abfragen in der Agent-Aufträge, um Daten zu laden und dann haben wir Pakete für die restlichen Sachen. Außer der Service Broker-Sache und einige web-services, in denen auch die Datenbank aktualisieren. Je älter ich werde und je mehr Orte, die ich bekommen ausgesetzt ist, desto mehr kann ich finden, die Wert auf eine konsistente, wenn auch übertrieben, den Ansatz zur Lösung der Lieferung.
Leistung ist nicht alles, aber die SSIS-team hat setzen Sie den ETL-benchmarks mithilfe des SSIS-also es hat definitiv die Fähigkeit, push-einige Daten in einer beeilen.
Als diese Antwort wächst lange, würde ich einfach lassen, wie es die Vorteile der SSIS und die Daten Fließen über gerade TSQL heimisch sind, out of the box
Es ist schwer zu schlagen diese für mein Geld.
Ich bin fertig mit SSIS, aber wenn ich planen von sql server nicht ausgeführt werden, bitte überprüfen Sie diesen link für meinen Beitrag. stackoverflow.com/questions/16766416/...
InformationsquelleAutor billinkc
Wenn Sie auf der Durchreise sind SSIS-Variablen Als Parameter in der Parameter-Registerkarte zuordnen und zuweisen von Werten für Diese Variablen durch Ausdruck, Dann ist Dein Task SQL Ausführen, verbrauchen Sie eine Menge Zeit bei der Auswertung, Ausdruck.
Verwenden von Expression Aufgabe(Separat erhältlich) und weisen Sie Variablen Statt mit Ausdruck in Variable Tab.
InformationsquelleAutor ADIL