Freitag, September 23, 2011

Rebuild Partitioned Index

Da ich die Syntax mit schöner Regelmäßigkeit anderswo suche, schreibe ich sie mal hier auf: um eine Index-Partition UNUSABLE zu setzen bzw. wieder neu aufzubauen, kann man folgende Kommandos verwenden:

alter index ... modify partition ... unusable;
alter index ... rebuild partition ...;

Alternativ kann man auch alle lokalen Indizes einer Partition auf einmal auf UNUSABLE setzen bzw. neu aufbauen:

alter table ... modify partition ... unusable local indexes;
alter table ... modify partition ... rebuild unusable local indexes;

Ein kleines Beispiel zum Thema liefert Tom Kyte.

Leider kann man einen als UNIQUE definierten Index vor einem Massendaten-Ladevorgang nicht über diesen Weg deaktivieren, um ihn später wieder aufzubauen, da das INSERT dann gegen einen ORA-01502 ("index 'string.string' or partition of such index is in unusable state") läuft - Details zu diesem Problem finden sich hier.

Keine Kommentare:

Kommentar veröffentlichen