Richard Foote bezeichnet die Index Compression als "perhaps one of the most under used and neglected index options available." Und wenn der Herr Foote so etwas schreibt, dann entspricht das vermutlich den Tatsachen. In seinem Blog findet man eine kleine Serie (aus dem Jahr 2008) zum Thema, die die folgenden vier Beiträge umfasst:
- Index Compression Part I (Low) mit den Grundlagen des Verfahrens und dem oben zitierten Satz
- Index Compression Part II (Down Is The New Up) mit einer Erklärung der Fälle, in denen index compression nichts bringt: "when the leading column is very selective or the compressed columns are very selective and have very few or possibly no repeating values in an index, then we have a problem."
- Index Compression Part III (2+2=5) über die (sinnlose) Komprimierung eines single column unique index.
- Index Compression Part IV (Packt Like Sardines In a Crushd Tin Box) mit weiteren technischen Details
Grundsätzlich dient index compression dem gleichen Zweck wie die table compression - nämlich dazu, die Größe eines Segments in der Datenbank zu reduzieren, um damit - auf Kosten eines relativ harmlosen CPU-Overheads - Storage und I/O-Operationen beim Zugriff einzusparen, was fast in jedem Fall ein sinnvoller Handel ist. Die technische Implementierung ist dabei allerdings eine andere, denn die index compression ersetzt immer nur führende wiederholte Werte im Index, was ihre initiale Definition etwas komplizierter macht als die Tabellen-Komprimierung. Umgekehrt bringt die Index-Komprimierung dafür nicht den Nachteil, dass nachfolgende UPDATEs die Segment-Struktur durcheinander bringen und die Größe des Objekts ungünstig beeinflussen. Ein Nachteil der index compression ist allerdings, dass sie auf Partitionsebene nicht nachträglich definiert und beim rebuild berücksichtigt werden kann, sondern einheitlich für das komplette Objekt bei der Anlage angegeben sein muss, was den Umbau bestehender Indizes etwas komplizierter macht (will heißen: eine Löschung und einen Neuaufbau erfordert). Einen entsprechenden Hinweis mit dem Verweis auf das MOS-Dokument 312843.1 "Rebuild a partitioned index specifying compression raises Ora-28659" findet man hier.
Ein Nachteil der index compression ist allerdings...
AntwortenLöschenIst das heute auch noch so?
gute Frage: das müsste ich mir gelegentlich mal anschauen - wobei ich es nicht für unwahrscheinlich halte, dass das Verhalten inzwischen geändert wurde.
Löschen