Wednesday, March 5, 2008

Index becoming invalid

Whenever a DBA task shifts the ROWID values

1) Table partition maintenance - Alter commands (move, split or truncate partition) will shift ROWID's, making the index invalid and unusable.

2) CTAS maintenance - Table reorganization with "alter table move" or an online table reorganization (using the dbms_redefinition package) will shift ROWIDs, creating unusable indexes.

3) Oracle imports - An Oracle import (imp utility) with the skip_unusable_indexes=y parameter

4) SQL*Loader (sqlldr utility) - Using direct path loads (e.g. skip_index_maintenance) will cause invalid and unusable indexes.

ALTER INDEX myindex REBUILD ONLINE TABLESPACE newtablespace;

No comments: