domingo, 19 de octubre de 2014

Oracle 10g - Construir nuevamente todos los Indices


El comando para poder construir nuevamente todos los indices es :

ALTER INDEX nombre_index REBUILD;

Esto puede ser usado cuando nos encontramos con el siguiente error:

ora-01502: index nombre_index or partition of such index is in unusable state

Para poder reconstruir todos los indices se puede utilizar el siguiente script:

DECLARE
   CURSOR cindex
   IS
      (SELECT object_name AS INDEX_NAME
         FROM user_objects
        WHERE object_type = 'INDEX');
   registro   cindex%ROWTYPE;
   v_sql      VARCHAR2 (255) := ' ';
BEGIN
   OPEN cindex;
    LOOP
        FETCH cindex INTO registro;           
        EXIT WHEN cindex%NOTFOUND;
            v_sql := 'ALTER INDEX ' || registro.index_name || '  REBUILD';
            EXECUTE IMMEDIATE v_sql;
           DBMS_OUTPUT.put_line (v_sql);
    END LOOP;
   CLOSE cindex;
END;

Con el script anterior reconstruimos todos los indices. 

No hay comentarios:

Publicar un comentario