1
Gracias

Unas palabras de agradecimiento nunca están de más.

Oracle - Optimizar las consultas

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. 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.




La sintaxis adecuada sería:
SELECT /* + hint(table) */ column1, column2 FROM table WHERE condition;

Hints 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.

Hints 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".

INDEX_ASC, INDEX_COMBINE, INDEX_DESC, INDEX_FFS, INDEX_JOIN, NO_INDEX, HASH, AND_EQUAL.

Hints para transformar consultas

FACT, MERGE, NO_EXPAND, NO_EXPAND_GSET_TO_UNION, NO_FACT, NO_MERGE, NOREWRITE, REWRITE, STAR_TRANSFORMATION, USE_CONCAT.

Hints 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.

Hints para la ejecución en paralelo

NOPARALLEL, PARALLEL, NOPARALLEL_INDEX, PARALLEL_INDEX, PQ_DISTRIBUTE.

Hints suplementarios

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.

Foto: © Unsplash

1
Gracias

Unas palabras de agradecimiento nunca están de más.

Haz una pregunta
Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net y director digital en el Grupo Figaro. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.

Consulta también

El documento « Oracle - Optimizar las consultas » se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.

0 Comentario