La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Laboratorio de optimización de BD

Presentaciones similares


Presentación del tema: "Laboratorio de optimización de BD"— Transcripción de la presentación:

1 Laboratorio de optimización de BD
Jonathan Medina Gómez Facultad de ingeniería U. De A.

2 Plan de ejecución ( EXPLAIN PLAN)
Cada vez que ejecutamos una sentencia una de las cosas que hace oracle es crear un plan de ejecución de la sentencia. Un plan de ejecución define la forma en que oracle busca o graba los datos. Decide, por ejemplo, si va a usar o no los índices en una sentencia SELECT. Sintaxis EXPLAIN PLAN FOR sentencia;

3 Para ver el resultado SELECT * FROM PLAN_TABLE START WITH ID = 0
CONNECT BY PRIOR ID=PARENT_ID;

4 Trazas de ejecución (SQL TRACE)
Las trazas de ejecución de oracle sirven para mostrar las sentencias SQL y su plan de ejecución de programas que acceden a bases de datos Oracle. Básicamente, activar la traza de ejecución consiste en ejecutar un procedimiento que tiene predefinido Oracle dentro del paquete DBMS_SYSTEM. El procedimiento tiene la siguiente cabecera: SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION( sid, serial#, TRUE/FALSE );

5 Trazas de ejecución (SQL TRACE)
Podemos obtener estos parámetros: SELECT SID, SERIAL#, MACHINE, TERMINAL, PROGRAM FROM SYS.V_$SESSION WHERE USERNAME = 'usuario'; SID y SERIAL# definen la sesión a la cual queremos hacer con la traza. El tercer parámetro indica si queremos activar/desactivar la traza de ejecución.

6 Trazas en SQL Plus Otra forma de hacer trazas de ejecución es en SQL*Plus, con la instrucción: SET AUTOTRACE ON/OFF Una vez activada la auto-traza, toda sentencia ejecutada en SQL*Plus vendrá acompañada de su plan y estadísticas de ejecución. Si, además, queremos cronometrar el tiempo de ejecución de cada consulta, podemos activar el cronómetro con: SET TIMING ON

7 Modos del optimizador Optimizador por reglas (RULE)
Se apoya en una información predefinida, donde cada operación tiene un rango de menor a mayor. Escoge la opción de menor rango. Optimizador por costes (CHOOSE) Entre todos los posibles caminos de acceso escoge el de menor costo; para calcular dicho costo se apoya en estadísticas almacenadas en el diccionario de datos (tamaño de las tablas, indices existentes, imagen de los índices, etc). Tambien considera “sugerencias” definidas por quien ejecuta la instruccción.

8 Tener en cuenta… Para averiguar el estado actual de la base de datos se basa en los datos del catálogo público, por lo que es recomendable que esté lo más actualizado posible (a través de la sentencia ANALYZE), ya que de no ser así, se pueden tomar decisiones a partir de datos desfasados (la tabla tenía 10 registros hace un mes pero ahora tiene ).

9 Optimizador Hay dos modos de forzar a Oracle a que utilice un optimizador: La primera es modificando la sesión activa para que todas las consultas sean optimizadas de una manera: ALTER SESSION SET OPTIMIZER_GOAL = [RULE|CHOOSE]; La otra manera es forzando a Oracle a que utilice un optimizador en una consulta concreta. Esto se hace a través de los “hints” o sugerencias.

10 Sugerencias al optimizador (HINTS)
Los hints son parámetros que pasamos a las sentencias SQL para influir en el optimizador de oracle. Hay que tener en cuenta que: si no es posible efectuar lo que se indica con el hint, Oracle lo ignorará, los Hints fuerzan el uso del Optimizador por costes (a excepción de rule) no afectan a subconsultas en la misma sentencia SQL. SELECT /*+ HINT */ . . .

11 Algunos hints posibles
/*+ ALL_ROWS */ Pone la consulta a costes y la optimiza para que consuma el menor número de recursos posibles. /*+ FIRST_ROWS */ Pone la consulta a costes la optimiza para conseguir el mejor tiempo de respuesta. /*+ CHOOSE */ Pone la consulta a costes. /*+ RULE */ Pone la consulta a reglas. /*+ 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.


Descargar ppt "Laboratorio de optimización de BD"

Presentaciones similares


Anuncios Google