4 Stimmen

Wie beschleunige ich eine SSIS Transfer Server Objects Aufgabe, die wirklich langsam läuft?

In SSIS 2005 habe ich den Import/Export-Assistenten verwendet, um ein Paket zu erstellen, das die Daten in einigen Tabellen zwischen meinem Produktionsserver und dem Entwicklungscomputer löscht/neu erstellt und ersetzt. Der vom Assistenten erstellte Kontrollfluss war extrem kompliziert, also habe ich ein neues Paket erstellt und die Aufgabe "Transfer SQL Server Objects Task" verwendet, die im Gegensatz zu dem verrückten Ding, das der Assistent erstellt hat, wirklich einfach zu konfigurieren und einzurichten ist. Das Problem ist, dass die Ausführung des von mir erstellten Pakets über 3 Minuten dauert, während die Version des Assistenten etwa 20 Sekunden benötigt. Warum ist der Unterschied in der Ausführungszeit so groß und gibt es eine Einstellung, die ich in dem Paket, das die Aufgabe "Objekte übertragen" verwendet, ändern kann, damit es schneller ausgeführt wird?

Hier ist das Paket, das der Assistent erstellt hat. Ich habe bereits ähnliche Pakete mit dem Assistenten erstellt, die ich problemlos bearbeiten konnte, aber so etwas habe ich noch nie gesehen. Ich kann nicht herausfinden, wo ich die Tabellen und das Schema ändern kann, die ich ablege und erstelle. Alt-Text http://www.freeimagehosting.net/uploads/f7323b2ce3.png

Hier sind die Eigenschaften der Transferaufgabe innerhalb des for-Schleifen-Containers

Alt-Text http://www.freeimagehosting.net/uploads/6f0dfc8269.png

0voto

Bryan Swan Punkte 2936
  • Verwenden Sie die Option Fast Parse für den Import von Integer- und Datumsspalten, wenn diese nicht lokalisiert sind.
  • Verwenden Sie den SQL Server Native Client 10.x OLE DB-Provider für eine In-Memory-Hochleistungsverbindung, oder erwägen Sie die Verwendung von Attunity-Treibern oder SQL Server <---> Oracle
  • Setzen Sie die Eigenschaft IsSorted für die Ausgabe einer vorgelagerten Datenflusskomponente auf True.
  • Wählen Sie den OLE DB-Zieldatenzugriffsmodus "Tabelle oder Ansicht - schnelles Laden".
  • Parallel ausgeführte Aufgaben fügen keine unnötigen Prioritätsbeschränkungen hinzu
  • Vermeiden Sie die Verwendung von select * in der Datenflussaufgabe
  • ( [RunInOptimizedMode] Eigenschaft). Der optimierte Modus verbessert die Leistung, indem ungenutzte Spalten, Ausgaben und Komponenten aus dem Datenfluss entfernt werden.
  • Kontrollkästchen Einschränkungen deaktivieren
  • Setzen Sie die Netzwerk-Paketgröße auf 32k statt der standardmäßigen 4k
  • Verwerfen Sie Indizes auf abgeschnittenen/neu geladenen Tabellen, und erwägen Sie die Verwendung von truncate, wenn Sie delete * verwenden.
  • Wenn sich Tabellen geringfügig ändern, sollten Sie Merge verwenden.
  • Erwägen Sie die Verwendung eines dynamischen Indexwiederaufbaus SP wie dem berühmten hier aufgelistet:
  • Lasttest mit UAT und SQL Server Profiler, der auf die Anwendung "ssis-%" gefiltert ist
  • Die Standardpuffergröße beträgt 10 Megabyte, die maximale Puffergröße beträgt 100 Megabyte.
  • Separate MDF/LDFs sowie TempDB & Defragmentierung von Festplatten
  • Finden Sie Engpässe in Ihrer Datenbank mit Hilfe von DMVs
  • Wechsel zu RAID 10 oder 0 von RAID 5 oder anderen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X