Online-Indexdefragmentierung

Eine Onlinedefragmentierung des Index wird durch den benutzerdefinierbaren Schwellenwert MINPCTUSED für die minimale Größe des verwendeten Speicherbereichs auf einer Indexseite (Blattseite) aktiviert.

Wenn ein Indexschlüssel aus einer Blattseite gelöscht und dieser Schwellenwert überschritten wird, werden die benachbarten Indexblattseiten daraufhin überprüft, ob zwei Blattseiten zusammengefügt werden können. Wenn auf einer Seite ausreichend Platz vorhanden und das Zusammenfügen zweier benachbarter Seiten möglich ist, wird das Zusammenfügen unverzüglich ausgeführt. Die resultierende leere Indexseite wird anschließend gelöscht.

Die Klausel MINPCTUSED kann nicht durch die Anweisung ALTER INDEX geändert werden. Wenn für vorhandene Indizes die Möglichkeit der Onlinedefragmentierung des Index erforderlich ist, müssen sie gelöscht und anschließend mit der Anweisung CREATE INDEX unter Angabe der Klausel MINPCTUSED erneut erstellt werden. Bei der Aktivierung der Onlinedefragmentierung des Index sollte für MINPCTUSED ein Wert kleiner als 50 eingestellt werden, um die Wahrscheinlichkeit zu erhöhen, dass Seiten beim Überprüfen benachbarter Seiten zusammengefügt werden können. Durch den Wert 0, der gleichzeitig der Standardwert ist, wird die Onlinedefragmentierung inaktiviert. Unabhängig davon, ob MINPCTUSED gesetzt ist oder nicht, wird die Möglichkeit, ein REORG CLEANUP für diesen Index durchzuführen, nicht beeinträchtigt. Die Einstellung von MINPCTUSED auf einen niedrigen Wert (1-50) kann die für REORG CLEANUP verbleibende Arbeit verringern, da zur Laufzeit automatisch mehr Seiten zusammengeführt werden.

Seiten von Indizes, die keine Blattseiten sind, werden bei einer Online-Indexdefragmentierung nicht zusammengefügt. Jedoch werden leere Nichtblattseiten gelöscht und zur Wiederverwendung durch andere Indizes für die gleiche Tabelle verfügbar gemacht. Um gelöschte Seiten für Objekte in einem DMS-Speichermodell (Database Managed Space) freizugeben, gibt es zwei Reorganisationsoptionen: REBUILD oder RECLAIM EXTENTS. Für das SMS-Speichermodell (SMS, systemverwalteter Bereich) ist nur die Option REORG REBUILD zulässig. Mit RECLAIM EXTENTS werden Seiten verschoben, um vollständige Speicherbereiche mit gelöschten Seiten zu erstellen und sie anschließend freizugeben. Mit REBUILD wird der Index völlig neu erstellt und unter Berücksichtigung von PCTFREE so kompakt wie möglich gehalten.

Die Anzahl der Stufen in einem Index ist nur mit REBUILD veränderbar. Wenn die Anzahl der Stufen in einem Index von Wichtigkeit ist, müssen Sie die Reorganisation mit der Option REBUILD ausführen.

Wenn eine X-Sperre (exklusive Sperre) für eine Tabelle aktiviert ist, werden Schlüssel beim Löschen von Schlüsseln physisch von einer Seite entfernt. In diesem Fall ist eine Online-Indexdefragmentierung effektiv. Wenn beim Löschen von Schlüsseln hingegen keine X-Sperre für die Tabelle aktiviert ist, werden Schlüssel als gelöscht markiert, jedoch nicht physisch von der Indexseite entfernt. In diesem Fall wird keine Indexdefragmentierung versucht.

Zur Defragmentierung von Indizes unabhängig vom Wert für MINPCTUSED rufen Sie den Befehl REORG INDEXES mit der Option CLEANUP ALL auf. Der gesamte Index wird überprüft und an den Stellen, wo dies möglich ist, werden zwei benachbarte Blattseiten zusammengefügt. Diese Zusammenführung ist möglich, wenn auf der zusammengefügten Seite mindestens ein Speicherbereich von der Größe des Werts für PCTFREE frei bleibt. PCTFREE kann bei der Erstellung eines Index angegeben werden. Der Standardwert ist 10 (Prozent).