Hay veces en las que al ejecutar una consulta el optimizador de la base de datos Oracle utiliza índices creados por el propio optimizador.
Supongamos que queremos ejecutar la consulta:
SELECT * FROM empleados WHERE nombre='Varetti' AND tipo_empleado='B'
Supongamos, además, que el optimizador creó un índice para tipo_empleado. Para evitar que al ejecutar la consulta utilice dicho índice índice podemos añadir !!” en la sentencia SELECT de la siguiente forma:
SELECT * FROM empleados WHERE nombre='Varetti' AND tipo_empleado!!''='B'
De esta forma, el optimizador no cogerá el índice asociado a tipo_empleado.
Otra manera de hacerlo es indicando al optimizador el índice que nosotros queremos utilizar en la ejecución de nuestra consulta SELECT a través de un hint:
SELECT * /*+ INDEX(empleados inx_empl_nombre) */ FROM empleados WHERE nombre='Varetti' AND tipo_empleado='B'
En este caso, aunque exista un índice para tipo_empleado, estaremos indicándole al optimizador que queremos que utilice el índice de la tabla empleados cuyo identificador es inx_empl_nombre

