Tuning - Optimizacion de Consultas
Tuning - Optimizacion de Consultas
Tuning - Optimizacion de Consultas
Bottleneck Exponencial
Tpo. de Rta.
Lineal Afinado
Volumen de Datos
El optimizador automticamente afina las sentencias SQL Afinar SQL no est dentro de mi rea de especialidad Yo escribo SQL, otra persona lo debe afinar Afinar el SQL ms tarde No podemos darnos el lujo de dedicar tiempo a afinar el SQL
Cundo se debe afinar? Idealmente SQL debera ser afinado en el momento en que se escribe. Mientras ms avanzado est el proyecto ms difcil ser realizar el tuning:
Cambiar algunos aspectos implican cambiar muchas otras cosas Una vez que SQL entra en produccin, la simple adicin de un ndice sobre una tabla grande puede ser complejo (tiempo, restricciones corporativas etc.)
Tuning SQL
Compra de nuevo hardware Tuning del Servidor de BD Tuning del Sistema Operativo Tuning de la Aplicacin (sin incluir SQL)
Posible Mejora
Si
Se ha logrado la optimizacin deseada?
Terminar
Afinar SQL
No
Formular un nuevo plan de Ejecucin
http://ora.u440.com/dba/hints.html
Usar Hints
Rediseo de tablas
Volmenes de datos reales: Realizar tuning contra tablas vacas o con pocos registros es prcticamente intil. Alternativas:
Probar en el ambiente real antes de entrar en produccin Trabajar en un ambiente con tablas a escala de las reales, por ejemplo un 25% del tamao de las tablas grandes y un 100% de las tablas pequeas (tablas de referencias)
Documentacin de los modelos disponibles Los requerimientos del sistema han sido expuestos Si el diseo est mal, el tuning puede ser intil! Aunque el SQL est afinado, si el servidor no lo est, esto podra impedir el logro de las expectativas Afinar el servidor de la BD
EXPLAIN PLAN
El plan de ejecucin de una sentencia SQL es la secuencia de operaciones que el motor de Oracle realiza para ejecutar una sentencia El EXPLAIN PLAN es una herramienta proporcionada por Oracle que permite observar el plan de ejecucin (y otros datos valiosos) de una sentencia especfica El EXPLAIN PLAN muestra los planes de ejecucin escogidos por el optimizador de Oracle para las sentencias SELECT, UPDATE, INSERT y DELETE
EXPLAIN PLAN
Los componentes del plan de ejecucin de una sentencia incluyen:
EXPLAIN PLAN
Aunque la salida del EXPLAIN PLAN muestra cmo ejecuta Oracle una sentencia SQL, estos resultados por si solos no son suficientes para diferenciar entre sentencias bien optimizadas y las que no lo estn Por ejemplo, si la salida muestra que una sentencia usa un ndice, esto no significa que la sentencia ejecuta eficientemente. En algunas ocasiones los ndices pueden ser extremadamente ineficientes(ver luego ndices)
EXPLAIN PLAN
Entonces por qu se debe utilizar el EXPLAIN PLAN?
El EXPLAIN PLAN permite determinar por ejemplo si un ndice est siendo usado, el mtodo de join que est siendo utilizado etc. Es posible instruir a Oracle para que modifique el plan (ver Hints) y luego a travs de pruebas (tipo TKPROF*), determinar cul es ms eficiente Al poder visualizar el plan de ejecucin de una consulta se puede determinar dnde puede haber problemas potenciales de rendimiento *Ver ms adelante
EXPLAIN PLAN
Cuando se evala un plan se debe examinar adicionalmente el consumo actual de recursos de la sentencia Lo anterior se logra mediante el uso de las herramientas TRACE y TKPROF para examinar el rendimiento de las sentencias SQL
EXPLAIN PLAN
Los resultados del EXPLAIN PLAN quedan guardados en una tabla la cual puede ser creada utilizando un script proporcionado por Oracle (UTLXPLAN.SQL). Dicha tabla posee las siguientes columnas:
Es el identificador de la sentencia.
EXPLAIN PLAN
Especifica variantes para la operacin ejecutada. Ms adelante se observarn sus posibles valores.
EXPLAIN PLAN
Utilizado para consultas distribuidas. OTHER contiene el texto SQL que es ejecutado en un nodo remoto.
Informacin adicional para consultas distribuidas y paralelas.
est a tablas.
Nmero estimado de filas accesadas por la operacin Nmero estimado de bytes retornados por la operacin