Oracle 19c Database Logo.png

Auto Indexing es un sistema experto que emula el trabajo que un especialista en performance realiza normalmente en una base de datos. El mismo supervisa la carga de trabajo en la base de datos y determina si hay algún índice que pueda ayudar a mejorarla.

 

A diferencia de los asesores de índices ya existentes en versiones anteriores de Oracle, el indexado automática no se limita a recomendaciones sino que valida las mismas (construye los índices y prueba las sentencias que se verían afectadas), e identifica sentencias que pueden ser perjudicadas por la existencia del nuevo índice, generando un SQL Plan Baseline para evitar que el nuevo índice afecte a la sentencia.

 

Automatic Indexing.png

 

Este es un proceso iterativo, el cual se ejecuta de manera periódica y posee mecanismos de aprendizaje que mejoran el proceso de recomendación de índices. Asimismo, para evitar mantener indices innecesarios, aquellos índices generados por en indexado automático que ya no son útiles son eliminados por el mismo proceso, reduciendo la sobrecarga generada por indices innecesario al ejecutar sentencias de DML sobre las tablas afectadas.

 

La configuración y administración de esta funcionalidad se hace mediante el nuevo paquete DBMS_AUTO_INDEX.

 

Activando o Desactivando Autimatic Indexing

Es posible activar esta nueva funcionalidad de dos formas, ya sea en modo Implement (que genera los indices y los deja visibles) o en modo Reports (donde los índices quedan en modo invisible y no son utilizados por las sentencias):

 

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','REPORT ONLY');

 

Para des-habilitar la función, también se usa el paquete DBMS_AUTO_INDEX:

 

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

 

Para ver mas detalles sobre la configuración y mas opciones de esta nueva característica, se puede consultar la documentación oficial.