Optimierung von Datenbanken

SQL: Indexkompression und effiziente Speichertechnologie

So funktioniert Index Key Compression

Die Index Key Compression beruht auf der Eliminierung von sich wiederholenden Schlüsselwerten in zusammengesetzten Schlüsseln. Zusammengesetzte Schlüssel in einem Index werden in einen Präfix- und Suffix-Teil untergliedert. Das Suffix repräsentiert dabei den eindeutigen Teil des Indexschlüssels.

Wiederholen sich Schlüsselwerte im Präfix-Teil des Index, werden sie nur einmal gespeichert und vom Suffix referenziert. Beide Teile befinden sich dabei im gleichen Datenblock. Dadurch wird eine Reduzierung der Index Leaf Pages erreicht und damit die Anzahl der I/O-Operationen bei einem Indexzugriff. Die folgende Grafik verdeutlicht das Prinzip:

Prinzip der Key Compression: Links die unkomprimierte IOT, recht die komprimierte IOT.
Prinzip der Key Compression: Links die unkomprimierte IOT, recht die komprimierte IOT.

In der nicht komprimierten IOT links sind die vollständigen Adressdatensätze gespeichert. Für die Key Compression werden die Spalten des Index – in der Abbildung rot – in Präfix und Suffix aufgeteilt. Die letzten beiden Spalten in der Tabelle links bilden dabei das Präfix (zum Beispiel Hamburg Nordenstrasse). Diese Indexteile sind nicht eindeutig. Die übrigen Spalten bilden das Suffix.

Bei der Key Compression werden nun Präfix und Suffix getrennt gespeichert. Mehrfach vorkommende Präfix-Teile werden dabei genau einmal gespeichert. Die Suffix-Einträge werden in einem Block zu allen Datensätzen abgespeichert. Im Beispiel sind die dritte und achte Zeile von oben die Präfix-Teile und die restlichen die Suffix-Teile. Aus der Tatsache, dass die Präfix-Einträge nur einmal gespeichert werden, ergibt sich die Platzersparnis – im Beispiel etwa 30 Prozent.