Índices fake en Oracle

Recientemente siguiendo el documento ID 456468.1, he realizado una verificación de la integridad del catálogo. El caso es que han aparecido un par de errores indicando un problema con un identificador de objeto:

1703982

Este objeto existe en dba_objets, la consulta:

Source   
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM dba_objects WHERE object_id=1703982

Devuelve:

Source   
OWNER   OBJECT_NAME                   OBJECT_TYPE
-----  ---------------------------   -------------------
APP     QUEST_SX_91B74A9BF3DEF56D61 INDEX

Intento obtener más información con:

Source   
SELECT * FROM DBA_INDEXES I WHERE i.index_name='QUEST_SX_91B74A9BF3DEF56D61'

Y en este caso no devuelve nada ???
En un principio parece que realmente haya un problema de integridad del catálogo, pero si se busca un poco en Metalink se puede encontrar el documento ID 329457.1.
Este documento habla de los índices FAKE, que no son más que índices creados por los asistentes de Enterprise Manager, para ver el efecto que tendría en un plan de ejecución CBO la existencia de un nuevo índice.
Es posible crear un índice de este tipo con:

Source   
CREATE INDEX idx2 ON myobj (object_name) NOSEGMENT;

Como se puede ver es un índice sin segmentos.
El caso es que los que yo he encontrado no los ha creado Enterprise Manager sinó TOAD, por ese motivo paracen sen detectados como un problema de integridad del catálogo.
Se pueden ver todos los índices fake existentes mediante la consulta:

Source   
SELECT o.object_name AS fake_index_name FROM dba_objects o
WHERE o.object_type = 'INDEX' AND NOT EXISTS
(SELECT NULL FROM dba_indexes i WHERE o.object_name = i.index_name AND o.owner = i.owner);

Estos índices se pueden incluso analizar, pero no mucho más. Yo he borrado los que me están apareciendo como problemáticos.

Deja un comentario