Freitag, September 18, 2015

Index Advanced Compression und mehrspaltige Indizes

Vor einem knappen Jahr hatte Richard Foote in seinem Blog mehrere Artikel zum Thema Index Advanced Compression veröffentlicht ("Advanced Index Compression" hätte mir besser gefallen). Jetzt hat der Autor offenbar eine neue Artikelserie begonnen, die sich mit der Wirkung des Features für mehrspaltige Indizes beschäftigt. Damit ich es nicht später vergesse, hier noch mal der explizite Hinweis, dass die Index Advanced Compression eine Lizenzierung der Advanced Compression Option erfordert. Wie üblich werde ich versuchen, alle Folgeartikel zu erfassen, kann aber nichts versprechen:
  • Index Advanced Compression: Multi-Column Index Part I (There There): wie üblich gibt es ein Beispiel und in diesem Beispiel wird eine Tabelle angelegt, deren erste Spalte unique ist, während die zweite nur 10 distinkte Werte enthält und die dritte immer den gleichen (erstaunlicherweise den String "David Bowie"; ich frage mich, wie der Herr Foote seine Passwörter auswählt). Dazu wird ein Index angelegt, dessen führendes Attribut die zweite Tabellen-Spalte ist (also die mit 10 unterschiedlichen Werten), der dann die eindeutige Id als zweite Spalte folgt. Zunächst wird gezeigt, dass eine Compression über beide Spalten den Index größer werden lässt, als er es ohne Komprimierung wäre. Wird die Compression auf die erste Spalte beschränkt, so ergibt sich eine Größenreduzierung für den Index. Diese Entscheidung für den passenden Komprimierungsgrad wird durch die Index Advanced Compression hinfällig, da dabei die Bestimmung des optimalen Verfahrens automatisch erfolgt. In einem zweiten Schritt wird das Beispiel dadurch modifiziert, dass in der eindeutigen Id-Spalte für einen größeren Bereich (10%) die Werte auf einen einheitlichen Wert gesetzt werden. Mit der manuell gesetzten Compression über eine bzw. zwei Spalten ergeben sich ähnliche Werte wie für den initialen Fall. Durch die Index Advanced Compression ist für diesen Fall aber eine Verbesserung möglich, da das Feature dafür sorgt, dass die dafür geeigneten Abschnitte des Index über beide Spalten komprimiert werden, während für den Rest der Struktur nur die erste Spalte komprimiert (soll heißen: dedupliziert) wird. Also zur Abwechslung mal eine automatische Option bei Oracle, die eine deutliche Verbesserung gegenüber der manuellen Vorgehensweise darstellt (das klingt jetzt vielleicht abfälliger, als es gemeint ist, aber ich hatte zuletzt mit AMM zu tun).
  • Index Advanced Compression: Multi-Column Index Part II (Blow Out): weist darauf hin, dass die Spaltenreihenfolge auch mit der Index Advanced Compression relevant bleibt: eine führende Spalte mit wenigen Wiederholungen ist weiterhin kein geeigneter Kandidat für Komprimierung. Gut komprimierbar ist mit dem neuen Verfahren hingegen ein Index, bei dem in einem bestimmten Bereich viele Wiederholungen für die führende Spalte erscheinen, während in der Regel kaum Wiederholungen auftreten. In diesem Fall kann Oracle den gut komprimierbaren Bereich komprimieren und den Rest des Index unkomprimiert lassen.
Wie gesagt: ich versuche den oder die Folgeartikel zu ergänzen.

Keine Kommentare:

Kommentar veröffentlichen