ETL kann nie schnell genug sein. Wenn jedoch ein Workflow zu langsam ist müssen wir zunächst messen welche Laufzeit zu langsam und welche Laufzeit schnell genug ist. Schnell lassen sich die „Langläufer“ identifizieren und wir können mit unseren Maßnahmen beginnen. Dargestellt wird das folgende Beispiel anhand eines Mappings das bei einem Full Load ca. 130 Mio. Zeilen bewegt und mit einer Laufzeit von 1:30h deutlich zu langsam ist. Es handelt sich um ein Mapping für die Beladung der Stage aus dem Quellsystem.
Im nächsten Schritt müssen wir untersuchen welcher Teil der Session den Engpass darstellt. Bei der Suche nach dem Engpass müssen folgende Schritte betrachtet werden.
Source
Target
Mapping / Transformations
Session
System
Laufzeit 1:30h; Rows/Second 8k
Source
In diesem Fall ist die Spalte für die Berechnung des Inkrements bereits indiziert. Bei einem Full Load spielen habe Indizes keinen Einfluss auf das Laufzeitverhalten. Die Abfrage selbst liest nur eine Tabelle aus. Somit kann die Abfrage nicht optimiert werden.
Mapping / Transformation
Bei der Beladung der Stage werden nahezu keine Transformationen durchgeführt. Somit gibt es kein Potential zur Performance Optimierung.
Target
Bei der Zieltabelle handelt es strukturell um eine 1:1 Kopie der Quelltabelle. Zusätzlich wurde diese Tabelle noch um Indexe für Berechnungen und Weiterverarbeitung erweitert. Durch ein drop der Indexe vor dem Laden und ein create nach dem Laden kann sich das Laufzeitverhalten des Mappings entscheidend verbessert werden. Die Kosten für das löschen der Indexe ist vernachlässigbar. Der Aufbau nach dem Ladeprozess ist überschaubar. Der Datendurchsatz erhöht sich enorm.
Session
Eine Partitionierung der PowerCenter Session wird nicht in Betracht gezogen. Folgende Parameter werden für die Verbesserung der Performance untersucht.
Commit Interval
DTM Buffer Size
Defaul buffer block Size
Target Load Type (bulk/normal)
System
Das System wird bei dieser Untersuchung nicht berücksichtigt.
Ergebnis
Durch die Pflege der Indizes konnte der Datendurchsatz von ursprünglich 18.000 rows/sec auf 30.000 rows/sec erhöht werden. Durch die Abschließende Korrektur der beiden Buffer Parameter konnte der Datendurchsatz nochmals auf 76.000 row/sec erhöht werden.