Freitag, Dezember 23, 2016

Neue Index-Features in 12.2

Richard Foote hat angekündigt, einige Artikel zu Index-Features, die in 12.2 ergänzt wurden, zu veröffentlichen. Ich werde versuchen, diese Artikel hier zusammenzufassen:
  • Oracle Database 12c Release 2: New Indexing Features – Long Identifiers (Several Species of Small Furry Animals Gathered Together in a Cave and Grooving With a Pict): die Länge des Titels steht in Zusammenhang mit dem vorgestellten Feature - die Größenbegrenzung für Identifier wurde angehoben: statt 30 Zeichen kann ein Indexname jetzt 128 Zeichen umfassen. Klingt für mich eher bedrohlich, obwohl es natürlich Fälle gibt, in denen das alte Limit ein Problem darstellte.
  • 12.2 Index Advanced Compression “High” – Part I (High Hopes): die neue "high" Variante der in 12.1 eingeführten "index advanced compression" (bei der mich immer noch die Reihenfolge der Namensbestandteile stört) verspricht eine deutlich verbesserte Komprimierung und verwendet andere Algorithmen als die "low" Variante, die nur auf der Deduplizierung von Index-Einträgen im Leaf Block basierte. Bei der "high" Variante werden die Index-Einträge in compression units gespeichert, wobei das Verfahren offenbar dem der hybrid columnar compression ähnelt. Im Beispiel sind die Effekte recht eindrucksvoll: während normale index compression den Beispiel-Index (in dem 25% der Daten in einem bestimmten Teilbereich der Tabelle Duplikate sind)  größer macht als die nicht komprimierte Variante (2158 Blocks vs. 2684 Blocks), sorgt die "low" Variante für eine geringfügige Verkleinerung (2057 Blocks), aber die "high" Variante macht den Index deutlich kompakter (815 Blocks; wobei aufgrund eines Bugs eine Neuerfassung der Statistiken erforderlich ist, die zunächst 0 Blocks anzeigen).
  • 12.2 Index Advanced Compression “High” Part II (One Of My Turns): untersucht das Verhalten mit einem Index auf eindeutigen Werten ohne Wiederholungen. Für die normale index compression und die "low" Variante der index advanced compression ergibt sich jeweils der Fehler "ORA-25193: cannot use COMPRESS option for a single column key". Die "high" Variante hingegen reduziert die Indexgröße im Test wiederum signifikant (2088 Blocks vs. 985 Blocks). Auf Wunsch von Jonathan Lewis hat der Herr Foote das Beispiel mit größeren Id-Werten und einer randomisierten Verteilung wiederholt, wodurch sich der Effekt verkleinert, aber immer noch eine Größenreduzierung um 30% hervorruft. Jonathan Lewis hat dem Thema auch noch einen eigenen Artikel in seinem Scratchpad gewidmet.
  • 12.2 Index Advanced Compression “High” Part III (I Can’t Give Everything Away): zeigt, dass die Vererbung der compression-Attribute über db_index_compression_inheritance gesteuert werden kann. Außerdem kann man für einen Tablespace einen Default-Wert angeben.
Ich versuche, wie üblich, die in der Serie folgenden Artikel nachzutragen.

Keine Kommentare:

Kommentar veröffentlichen