ALTER INDEX
Aktivieren oder Deaktivieren eines Indexes;Neuerstellung eines Index
DSQL, ESQL
ALTER INDEX indexname {ACTIVE | INACTIVE}
Parameter | Beschreibung |
---|---|
indexname |
Indexname |
Die ALTER INDEX
-Anweisung aktiviert oder deaktiviert einen Index.Diese Anweisung bietet keine Möglichkeit, irgendwelche Attribute des Indexes zu ändern.
INAKTIV
-
Mit der Option
INACTIVE
wird der Index vom aktiven in den inaktiven Zustand geschaltet.Die Wirkung ist ähnlich wie bei derDROP INDEX
-Anweisung, außer dass die Indexdefinition in der Datenbank verbleibt.Das Ändern eines Einschränkungsindex in den inaktiven Zustand ist nicht zulässig.Ein aktiver Index kann deaktiviert werden, wenn keine Abfragen mit diesem Index vorbereitet sind;andernfalls wird ein Fehler “object in use” zurückgegeben.
Die Aktivierung eines inaktiven Index ist ebenfalls sicher.Wenn jedoch aktive Transaktionen vorhanden sind, die die Tabelle ändern, schlägt die Transaktion mit der Anweisung
ALTER INDEX
fehl, wenn sie das AttributNOWAIT
besitzt.Wenn sich die Transaktion imWAIT
-Modus befindet, wartet sie auf den Abschluss gleichzeitiger Transaktionen.Auf der anderen Seite der Medaille, wenn unser
ALTER INDEX
erfolgreich ist und beginnt, den Index beiCOMMIT
neu aufzubauen, werden andere Transaktionen, die diese Tabelle ändern, fehlschlagen oder warten, entsprechend ihrenWAIT
/NO WAIT
-Attributen.Genauso verhält es sich mitCREATE INDEX
.NoteWofür ist es nützlich?Es kann sinnvoll sein, einen Index in den inaktiven Zustand zu versetzen, während ein großer Satz von Datensätzen in der Tabelle, die den Index besitzt, eingefügt, aktualisiert oder gelöscht wird.
AKTIV
-
Mit der Option 'ACTIVE' wird der Index, wenn er sich im inaktiven Zustand befindet, in den aktiven Zustand geschaltet und das System baut den Index neu auf.
NoteWofür ist es nützlich?Auch wenn der Index active ist, wenn
ALTER INDEX … ACTIVE
ausgeführt wird, wird der Index neu aufgebaut.Das Neuerstellen von Indizes kann ein nützliches Stück Haushaltsführung sein, um gelegentlich die Indizes einer großen Tabelle in einer Datenbank zu verwalten, die häufig eingefügt, aktualisiert oder gelöscht wird, aber selten wiederhergestellt wird.