Este script que viene con la instalación de oracle desde 8.1.7.4 y recompila todos los objectos invalidos y puede ser ejecutado en cualquier momento.
Hace uso de UTL_RECOMP para compilar los objetos.
Compila todos los objetos inválidos:
@$ORACLE_HOME/rdbms/admin/utlrp.sql;
Para verificar el avance podemos ver la cantidad de objetos que quedan por compilar:
Muestra una lista de indices inválidos tanto indices globales, locales, noparticionados, particionados, y subparticionados.
select owner, index_name, 'NONE' partition, 'NONE' subpartition
from dba_indexes
where status = 'INVALID'
union all
select index_owner owner, index_name index_name, partition_name partition, 'NONE' subpartition