Skip to content

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