Introducción Al Optimizador
Introducción Al Optimizador
al optimizador
Introducción al Optimizador.
• Las sentencias SQL, una vez que han sido analizadas, son
almacenadas en un área de memoria llamada Library Cache, dentro
de la Shared Pool.
PARSING
• Es la operación de gestión y tratamiento de sentencias introducidas por
los clientes.
• Existen 2 fases en el PARSING: Hard Parsing y Soft Parsing
SOFT Parsing
– Es realizado cuando la sentencia existe en memoria
– Realiza la comparación y el análisis sintáctico.
– Consulta el plan de ejecución y ejecuta la consulta.
HARD Parsing
– Es realizado cuando la sentencia NO existe en memoria
– Realiza la comparación, análisis sintáctico y semántico
– Reserva memoria para la consulta.
– Revisa permisos de usuarios y privilegios
– Genera el plan de ejecución y ejecuta la consulta.
Optimizador de Oracle
• OPTIMIZER_MODE = Valor
ALL_ROWS Uso de CBO para todos los comandos SQL
Busca el mejor Rendimiento con el mínimo número de
recursos.
Valor por defecto en Oracle 11g
• Sesión
Alter session set OPTIMIZER_MODE = FIRST_ROWS_10
• Hint INSTANCIA
Select /*+ FIRST_ROWS(10) */ * SESION
from emp;
HINT
NOTA:
Si el optimizador usa CBO con estadísticas y alguna tabla no dispone de esas
estadísticas, Oracle se basa en información interna (n.bloques datos, n.bloques libres,
ocupados, etc ) para realizarlo
Optimizador de Oracle
Heurística
Optimizador de Oracle
• TUNING:
Es el modo usado por los asesores de TUNING y ACCESO.
Es usado para realizar un análisis completo en consultas más complejas
Consume más tiempo que el modo normal, debido a su mayor información y caminos
usados para la obtención del Plan de Ejecución Idóneo.
Optimizador de Oracle. CBO
NORMAL TUNING
Oracle 9i
• Usa un modelo de Costos basado en el I/O, evaluando todo, principalmente, en
términos de lectura de bloques.
• No utiliza el uso de los gastos de CPU ( o usando constantes para ello).
Oracle 10g-11g
• El modelo de Costos incluye estadísticas del Sistema de manera realista
captando CPU + I/O.
• Se amplia el número de algoritmos para el proceso de transformación y creación
de QUERY BLOCK’s.
Optimizador de Oracle. CBO
Anulación de Subconsulta
-----------------------------------
Esta transformación
permite al optimizador elegir
ruta de acceso, el método
de unión y el orden de
unión.
Optimizador de Oracle. CBO
Fusión de Vistas
-----------------------------------
CBO. Estimador
• Se estima el tiempo de ejecución basándose en:
• Cardinalidad ( número de filas )
• Selectividad ( fracciones de las filas filtradas por un predicado WHERE )
• Recursos usados ( I/O, CPU, memoria)
• Número de operaciones de I/O
• Tipo de operaciones de I/O
• Número de ciclos de CPU para su ejecución.
CBO. Estimador.
Selectividad y Cardinalidad
CBO. Estimador.
Costo
• Valor estimado proporcional entre recursos necesitados, modos de acceso, joins, orden de
los joins, I/O, etc
• El costo es la mejor estimación del optimizador del número de E/S necesarias para ejecutar
una sentencia concreta.
• En SELECT con más de una Tabla, más tiempo se tarda en generar los posibles
planes de ejecución.