Optimizacin de Preguntas Optimizacin de preguntas z Optimizacin

  • Slides: 13
Download presentation
Optimización de Preguntas

Optimización de Preguntas

Optimización de preguntas z Optimización: pregunta plan costo ópt. costo = CPU + I/O

Optimización de preguntas z Optimización: pregunta plan costo ópt. costo = CPU + I/O + COMUNICACIONES z Necesario para responder eficientemente z Posible con lenguajes no procedurales (ej. SQL) y leng. no procedural: se dice qué se quiere obtener y no cómo obtenerlo (algoritmo, uso de índices. . . ) y sistemas con lenguajes procedurales: ej. IMS (jerárquico) o CODASYL (en red)

Ejemplo motivador z La optimización es posible y necesaria z Las distintas estrategias requieren

Ejemplo motivador z La optimización es posible y necesaria z Las distintas estrategias requieren costes muy distinto z Debe ser un proceso automático y depende del momento concreto en la vida de la BD y es complicado saber qué estrategia es mejor y Nunca se esta seguro (estimaciones)

Etapas en la optimización z Convertir la pregunta en una representación interna (álgebra relacional,

Etapas en la optimización z Convertir la pregunta en una representación interna (álgebra relacional, árbol sintáctico) z Transformar la pregunta en una forma canónica (reglas sintácticas y semánticas) z Escoger los procedimientos de bajo nivel candidatos (para cada operador) y ¿índices? ¿clustering? ¿rango y núm. valores? z Generar los planes y escoger el más barato y usar heurísticos para reducir búsqueda

Optimización sintáctica z Entrada: expresión álgebra relacional z Salida: expr. álgebra relacional equivalente y

Optimización sintáctica z Entrada: expresión álgebra relacional z Salida: expr. álgebra relacional equivalente y y y operaciones de idempotencia, propagar ctes. operación selección se baja en el árbol operación proyección se baja en el árbol agrupar selecciones y proyecciones Idea: reducir tamaño de las relaciones a combinar con la operación join

Optimización semántica z Transformar la pregunta en otra que devuelve las misma tuplas z

Optimización semántica z Transformar la pregunta en otra que devuelve las misma tuplas z Utilizar conocimiento semántico de la BD y restr. integridad, dependencias funcionales, claves extranjeras, reglas semánticas z En general, la opt. sem. es un proceso caro, por lo que los SGBD comerciales no la aplican. Se suele basar en técnicas de Int. Artificial.

Optimización física: Selección z Algoritmos y Búsqueda lineal y Búsqueda binaria y Empleo de

Optimización física: Selección z Algoritmos y Búsqueda lineal y Búsqueda binaria y Empleo de índices (de distintos tipos) z Selectividad de una condición y % de la relación que satisface la condición y Ejecutar primero las selecciones de mayor selectividad

Optimización física: Join z Algoritmos y y y Ciclo anidado (Nested Loops) o fuerza

Optimización física: Join z Algoritmos y y y Ciclo anidado (Nested Loops) o fuerza bruta Sort-Join (Sort Merge) Join con índice en una de las relaciones Join con índice para cada relación Hash-Join

Optimización física: otras op. z Proyecciones: fácil de implementar (hay que recorrer todas las

Optimización física: otras op. z Proyecciones: fácil de implementar (hay que recorrer todas las tuplas) z Producto cartesiano: muy costosa y Evitarla z Unión, Intersección, Diferencia y Primero se ordenan las dos relaciones

Generar los planes y escoger el más barato z Planes para responder a la

Generar los planes y escoger el más barato z Planes para responder a la pregunta, y su costo z Cada plan se construye combinando el conjunto de procedimientos candidatos posibles. y Calcular el costo es complicado hay que estimar tamaños de resultados intermedios (estadísticas de la BD, en el catálogo). x Calcular el orden óptimo de ejecución de joins • N! posibilidades de ejecutar un join entre N relaciones x Evitar resultados intermedios (subir selecciones) z Usar heurísticos para reducir la búsqueda

Optimización del costo: CPU + I/O + COM z BD centralizadas y generalmente se

Optimización del costo: CPU + I/O + COM z BD centralizadas y generalmente se tiene en cuenta sólo costo I/O z BD distribuidas en Redes Area Amplia (WAN) y generalmente, sólo costo COM. z BD distribuidas en Redes de Area Local (LAN) y generalmente, costos I/O y COM. z BD en servidores paralelos y influyen los tres: CPU, I/O y COM.

Optimización en Oracle z Optimización basada en reglas o basada en costes (seleccionado por

Optimización en Oracle z Optimización basada en reglas o basada en costes (seleccionado por el usuario) z EXPLAIN PLAN: ver como se ejecutará una sentencia SQL z No hay optimización semántica y hasta Oracle 8, incluido z Se puede influir en el uso o no de índices (no recomendado)

Conclusiones y Los SGBD realizan optimización de preguntas • son inútiles algunas reformulaciones de

Conclusiones y Los SGBD realizan optimización de preguntas • son inútiles algunas reformulaciones de preguntas y Algunas optimizaciones (todavía) no son realizadas por los SGBD (ej. optimización semántica) • hay que reformular algunas preguntas y El proceso de optimización de preguntas es complejo y cada SGBD lo hace distinto. • hay que consultar el manual del SGBD concreto. y Es necesario conocer cómo se procesan las preguntas para realizar el DISEÑO FÍSICO. • cuándo es útil usar índices o hash o no utilizarlos. • saber que el join es costoso --> reducir número de joins.