Aller au contenu

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;
 /