Vergleich der Performancewerte für die unterschiedlichen Datenquellen und -Ziele Können in Integration Services Daten schneller in eine Datenbank oder in eine Textdatei geschrieben werden? Wie schnell geht das lesen von den unterschiedlichen Datenquellen? Hier geht es um nackte Performancewerte. Damit die Performancewerte miteinander verglichen werden konnten, wurde mit Hilfe der Data Generator Source jeweils 500.000 Datensätze erzeugt und in unterschiedliche Datenziele geschrieben. Danach werden die Daten wieder gelesen und in das endgültiges Datenziel der Trash-Adapter geschrieben. Folgende Fälle wurden untersucht:
Der Gesamtzeitbedarf wurden durch die Verwendung von Scripttasks in den Events PreExeute und Post Execute der jeweiligen Task Datenflußtask gemessen. Der Vorlauf und die Ergebnisse
Für den Vorlauf wurde eine Integerspalte
und eine Textspalte mit einer Länge von 50 Zeichen erzeugt. Gemessen wurde
das schreiben und das einlesen.
Die ersten drei Optionen, Flatfile mit der Option Fastparse, das Rohdatenformat und die einfache Textdatei liegen so eng zusammen, dass eine zusätzliche Messung notwendig ist. Das Datenziel SQL-Server ist knapp 20% Prozent schneller als die nächste Option zum schreiben der Daten in eine Tabelle auf dem SQL Server. Es gibt allerdings einige Einschränkungen, die bei diesem Datenziel beachtet werden müssen:
Der Zugriff über ADO.Net ist langsamer als der Zugriff über OLE-DB. Wenn mehrere Spalten verarbeitet werden ist dieser Unterschied größer. Das kommt daher, da wesentliche Teile in SSIS in nativen Kode geschrieben wurde; der ADO.Net Adapter wurde in C# geschrieben. Das Recordset im Speicher, ist nur für die Übergabe von kleinen Datenmengen brauchbar. Erstens beansprucht es sehr viel Hauptspeicher und ist zudem auch langsam. Dies mag auf den ersten Blick überraschen. Das einlesen der Daten wurde durch eine Scripttranformation durchgeführt. Hier wird eine Menge Zeit gebraucht. Das Schreiben der Daten über OLE-DB ohne den Modus schnelles Laden ist mit weiten Abstand am langsamsten. Diese Option sollte nicht ohne zwingenden Grund verwendet werden. Müssen allerdings Trigger und/oder Constrains in der Zieltabelle berücksichtigt werden, gibt es keine andere Wahl. Das Finale mit den Ergebnissen Für den Endscheidungskampf wurde die Regel geändert:
Je mehr Spalten geschrieben werden, umso deutlicher wird der Performancevorteil wenn die Daten über die Rohdatendatei gelesen und geschrieben werden. Genau die gleiche Aussage gilt bei der Option Fastparse für das einlesen von Textdateien. Allerdings wird die Option Rohdatendatei nie eingeholt. Die Warnung
Bitte testen Sie die
beiden Demopakete
nicht
auf einen Produktionsrechner. Die beiden Demopakete finden Sie hier. Der Verbindungs-Manager muss für Ihre Umgebung angepasst werden. Bitte aktivieren Sie den entsprechenden Sequenzcontainer für die Messung. Zusammenfassung Durch die Auswahl der möglichen Datenflussquellen und - ziele können sehr große Performanceunterschiede festgestellt werden. Für das Zwischenspeichern von Daten ist das Rohdatenziel die optimale Wahl. Komponentenindex:
erstellt am 14.8.2006 |