Hints Oracle: optimizar consultas, parallel, ejemplo...

Oracle posee un optimizador interno que le permite perfeccionar el plan de ejecución de una consulta. A veces, las características de la base de datos cambian de manera tan rápida que las estadísticas de este optimizador no llegan a ser actualizadas. En tal caso, los hints podrían ser de ayuda.
¿Qué son los hints?
Estos no son más que parámetros que se sitúan después del comando SELECT y que indican al optimizador de Oracle cómo actuar.
¿Qué hints existen para la optimización de resultados?
- ALL_ROWS: es utilizado normalmente para procesos por lotes o para los sistemas de almacenamiento de datos. Indica al optimizador que utilice el mínimo de recursos para que devuelva el resultado completo.
- FIRST_ROWS: el objetivo del optimizador es devolver la primera línea de la consulta en el menor tiempo posible.
- CHOOSE: tiene en cuenta las estadísticas, si es que existen, y utiliza un optimizador basado en costes.
- RULE: le indica al optimizador que únicamente determine el plan de ejecución utilizando reglas estrictas sin tener en cuenta el contexto (estadísticas y costes de acceso) u otros hints en la consulta.
¿Qué hints existen para el modo de acceso?
- CLUSTER: indica al optimizador que obtenga los datos de una tabla clusterizada.
- FULL: indica al optimizador una lectura completa de la tabla.
- ROWID: indica al optimizador una lectura de la tabla por Rowid.
- INDEX: fuerza el uso del índice "index".
- OTROS: INDEX_ASC, INDEX_COMBINE, INDEX_DESC, INDEX_FFS, INDEX_JOIN, NO_INDEX, HASH, AND_EQUAL.
¿Qué hints existen para transformar consultas?
- FACT
- MERGE
- NO_EXPAND
- NO_EXPAND_GSET_TO_UNION
- NO_FACT
- NO_MERGE
- NOREWRITE
- REWRITE
- STAR_TRANSFORMATION
- USE_CONCAT
¿Qué hints existen para las operación de unión SQL?
- DRIVING_SITE
- HASH_AJ
- HASH_SJ
- LEADING
- MERGE_AJ
- MERGE_SJ
- NL_AJ
- NL_SJ
- USE_HASH
- USE_MERGE
- USE_NL
¿Qué hints existen para la ejecución en paralelo?
- NOPARALLEL
- PARALLEL
- NOPARALLEL_INDEX
- PARALLEL_INDEX
- PQ_DISTRIBUTE
¿Qué hints suplementarios hay?
- ANTIJOIN
- APPEND
- BITMAP
- BUFFER
- CACHE
- CARDINALITY
- CPU_COSTING
- DYNAMIC_SAMPLING
- INLINE
- MATERIALIZE
- NO_ACCESS
- NO_BUFFER
- NO_MONITORING
- NO_PUSH_PRED
- NO_PUSH_SUBQ
- NO_QKN_BUFF
- NO_SEMIJOIN
- NOAPPEND
- NOCACHE
- OR_EXPAND
- ORDERED
- ORDERED_PREDICATES
- PUSH_PRED
- USH_SUBQ
- QB_NAME
- RESULT_CACHE
- SELECTIVITY
- SEMIJOIN
- SEMIJOIN_DRIVER
- STAR
- WAP_JOIN_INPUTS
- USE_ANTI
- USE_SEMI
¿Algún ejemplo de la sintaxis adecuada?
La sintaxis adecuada sería:
-
SELECT /* + hint(table) */ column1, column2 FROM table WHERE condition;
Alrededor del mismo tema
- Parallel oracle ejemplos
- Hint parallel oracle ejemplos
- Hints oracle ejemplos
- Necesito ejemplos reales de intranet/extranet > Foro de redes
- FUNCIÓN SI() ANIDADA CON LA FUNCIÓN Y() y O() [resuelto] > Foro Excel
- Páginas o sitios web no confiables [resuelto] > Foro Internet
- Recuperar contraseña oracle sql developer > Guide
- Actualizar secuencia oracle > Guide