En este artículo veremos los hints más comunes con ejemplos para que puedas usarlos de manera efectiva.
¿Cómo se usan los Hints?
Los hints se colocan en el bloque SELECT
inmediatamente después de la palabra clave SELECT
, encerrados entre /*+ ... */
.
1. FULL – Forzar un Full Table Scan
Este hint le indica a Oracle que debe escanear toda la tabla, ignorando índices disponibles.
Ejemplo:
Cuándo usarlo: Si el índice no es selectivo y escanear la tabla completa es más eficiente.
2. INDEX – Forzar el uso de un índice
Este hint le dice a Oracle que use un índice específico.
Ejemplo:
Cuándo usarlo: Cuando Oracle no elige un índice útil por sí solo, y sabes que usarlo es más eficiente.
3. USE_NL – Forzar Nested Loops Join
Este hint fuerza el uso del algoritmo de nested loops para una combinación (JOIN).
Ejemplo:
Cuándo usarlo: Cuando esperas pocos resultados del lado interno de la combinación.
4. USE_HASH – Forzar Hash Join
Este hint obliga a Oracle a usar hash joins en lugar de otras estrategias.
Ejemplo:
Cuándo usarlo: Para combinar grandes volúmenes de datos eficientemente.
5. LEADING – Controlar el orden de las tablas
Permite especificar qué tabla debe ser procesada primero en una combinación.
Ejemplo:
Cuándo usarlo: Cuando el orden de acceso puede mejorar el rendimiento.
6. PARALLEL – Ejecutar en paralelo
Solicita a Oracle que ejecute la consulta en paralelo.
Ejemplo:
Cuándo usarlo: En consultas sobre grandes volúmenes de datos para mejorar el tiempo de respuesta.
7. MERGE – Forzar Merge Join
Fuerza el uso de merge join como estrategia de combinación.
Ejemplo:
Cuándo usarlo: Cuando las tablas ya están ordenadas por las columnas de combinación.
Consejos para el uso de Hints
-
No abuses de los hints. Deja que Oracle optimice por su cuenta si no estás seguro.
-
Prueba y mide. Usa
EXPLAIN PLAN
oAUTOTRACE
para verificar el efecto de tus hints. -
Documenta bien tu código. Otros desarrolladores deben entender por qué usaste un hint.