Buscar este blog

viernes, 3 de junio de 2016

Oracle HINTS

Oracle HINTS

/*+ ALL_ROWS */ 

Ejecuta la consulta por costes y la optimiza para que consuma el menor número de recursos posibles.

/*+ FIRST_ROWS */

 Ejecuta la consulta por costes la optimiza para conseguir el mejor tiempo de respuesta.

/*+ CHOOSE */ 

Ejecuta la consulta por costes, es decir, el optimizador se basa en las reglas básicas, pero teniendo en cuenta el estado actual de la base de datos.

/*+ RULE */ 

Ejecuta la consulta por reglas, es decir, el optimizador se basa en ciertas reglas para realizar las consultas. Por ejemplo, si se filtra por un campo indexado, se utilizará el índice, etc.

/*+ INDEX( tabla índice ) */ 

Fuerza la utilización del índice indicado para la tabla indicada.

/*+ ORDERED */ 

Hace que las combinaciones de las tablas se hagan en el mismo orden en que aparecen en el join.

Oracle recomienda que todas las consultas se hagan por costes, aunque hay ciertos casos en los que una consulta tarda demasiado por costes y por reglas es inmediata. En esos casos hay dos modos de forzar a Oracle a que utilice un optimizados.

La primera es indicándolo en la propia consulta (explicado anteriormente):

SELECT /*+ CHOOSE */ FROM TABLE WHERE CONDITION;

La segunda se haría modificando la sesión activa para que todas las consultas ejecutadas en nuestra sesión, sean ejecutadas de esta manera sin necesidad de añadir ningún parámetro a la consulta (al finalizar la sesión se pierde la configuración):

ALTER SESSION SET OPTIMIZER_GOAL = [RULE|CHOOSE];



/*+ dynamic_sampling(4) */

Oracle provee facilidades tales como el hint DYNAMIC_SAMPLING que puede tener como valor entre 2 a 10 , el objetivo es tener una mejor precisión en la cardinalidad sobre un objeto ,permitiendo al optimizador de costo analizar y proveer de manera mas rápida un plan de ejecución para la sentencia SQL. El valor indica qué tanto debe tomar de estimación de las tablas 0 no estimación 10 toda la tabla para estimar.

select /*+ dynamic_sampling(4) */ …….. 40% de la tabla

No hay comentarios.: