Rebuild de tous les indexes
Le script suivant permet de reconstruire tous les indexes d’un utilisateur et de les déplacer dans un tablespace spécifique, ici ‘TBS_IDX’.
/
DECLARE
s_IndexName VARCHAR2(255);
s_TablespaceName VARCHAR2(255);
Cursor c_Indexes Is
SELECT IDX.INDEX_NAME
FROM USER_INDEXES IDX
WHERE INDEX_TYPE = 'NORMAL' OR INDEX_TYPE = 'BITMAP';
BEGIN
Open c_Indexes;
Loop
FETCH c_Indexes INTO s_IndexName;
EXIT WHEN c_Indexes%NOTFOUND;
-- Deplacement des index dans le tablespace TBS_IDX
s_TablespaceName := 'TBS_IDX';
EXECUTE IMMEDIATE 'ALTER INDEX ' || s_IndexName || ' REBUILD TABLESPACE ' || s_TablespaceName;
-- DBMS_OUTPUT.PUT_LINE('Index Rebuild:' || s_IndexName);
End Loop;
Close c_Indexes;
COMMIT;
END;
/