MERGE-Befehl für Dimensionspflege

29. Juli 2011

Ich möchte in diesem Beitrag einen Post von Sascha Lorenz aufgreifen, in dem er den MERGE-Befehl in T-SQL vorstellt und zeigt, wie er ihn für die Dimensionspflege bei SCD Typ 1 und 2 anwendet.

Bei der Dimensionspflege fallen einem zunächst die Möglichkeiten ein, die SSIS mit seinem eingebauten SCD-Konstrukt bietet, sowie diverse SSIS Transformationen, die von Dritten angeboten werden (z.B. Kimballs SCD). Auch eigene Lösungen auf SSIS-Basis sind denkbar. Wer das Problem aber lieber auf T-SQL Ebene lösen möchte, dem wird mit dem MERGE-Befehl eine interessante Alternative geboten. An dieser Stelle muss hinzugefügt werden, dass beide Methoden ihre Vor- und Nachteile haben. Der Nachteil einer SQL-Lösung ist die schlechtere Wartbarkeit, der Vorteil ist ein möglicher Performancegewinn. Die Entscheidung muss im Einzelfall getroffen werden.

Ein ganz wichtiger Punkt für alle, die noch mit dem SQL Server 2005 unterwegs sind: Hier gibt es noch keinen MERGE-Befehl, der wurde erst mit 2008 eingeführt. Also noch ein Grund mehr die 2005 auf 2008 (R2) Migration so schnell wie möglich durchzuführen.

Wie funktioniert nun die Dimensionspflege mit dem MERGE-Befehl? Dazu übergebe ich das Wort an Sascha Lorenz…