Samstag, August 10, 2013

Partielle Indizes für partitionierte Tabellen in Oracle 12c

Richard Foote schreibt eifrig über neue Features in 12c und ich habe Mühe, bei der Lektüre schrittzuhalten. Zum Thema der Möglichkeit, Indizes nur für eine Teilmenge der Partitionen einer Tabelle anzulegen, hat er folgende Artikel veröffentlicht:
  • 12c Partial Indexes For Partitioned Tables Part I (Ignoreland): weist zunächst darauf hin, dass partielle Indizes nicht auf lokale Indizes beschränkt sind - was ich besonders erstaunlich finde -, und zeigt das Verhalten zunächst anhand eines globalen Index. Das Schlüsselwort für die Festlegung, welche Partitionen indiziert werden sollen, lautet INDEXING (was ich etwas einfallslos finde), und ein partieller Index wird über die Syntax CREATE INDEX ... INDEXING PARTIAL; angelegt. Zugriffe, die sowohl indizierte als auch nicht indizierte Partitionen betreffen, werden im Execution Plan über UNION ALL verknüpft. Durch geschickte (Sub-) Partitionierung kann man auf diese Weise die Größe (und Anzahl) von Index-Partitionen auf ein Minimum reduzieren.
  • 12c Partial Indexes For Partitioned Tables Part II (Vanishing Act): liefert ein Beispiel für das Verhalten mit lokalen Indizes. In diesem Fall werden die Index-Partitionen, für Partitionen, die mit INDEXING OFF definiert sind, als UNUSABLE erzeugt, was dafür sorgt, dass kein entsprechendes Segment angelegt wird. Aus nahe liegenden Gründen kann ein partieller Index nicht zur Unterstützung von PK- und UK-Constraints verwendet werden.
Dürfte sich als ein extrem nützliches Feature erweisen, nehme ich an.

Keine Kommentare:

Kommentar veröffentlichen