optimización de preguntas

13
Optimización de Preguntas

Upload: avalbane-dargan

Post on 03-Jan-2016

66 views

Category:

Documents


0 download

DESCRIPTION

Optimización de Preguntas. Optimización de preguntas. Optimización: pregunta  plan costo ópt. costo = CPU + I/O + COMUNICACIONES Necesario para responder eficientemente Posible con lenguajes no procedurales (ej. SQL) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Optimización de Preguntas

Optimización de Preguntas

Page 2: Optimización de Preguntas

Optimización de preguntas

Optimización: pregunta plan costo ópt.costo = CPU + I/O + COMUNICACIONES

Necesario para responder eficientementePosible con lenguajes no procedurales (ej.

SQL) leng. no procedural: se dice qué se quiere

obtener y no cómo obtenerlo (algoritmo, uso de índices...)

sistemas con lenguajes procedurales: ej. IMS (jerárquico) o CODASYL (en red)

Page 3: Optimización de Preguntas

Ejemplo motivador

La optimización es posible y necesariaLas distintas estrategias requieren

costes muy distintoDebe ser un proceso automático

depende del momento concreto en la vida de la BD

es complicado saber qué estrategia es mejor

Nunca se esta seguro (estimaciones)

Page 4: Optimización de Preguntas

Etapas en la optimización

Convertir la pregunta en una representación interna (álgebra relacional, árbol sintáctico)

Transformar la pregunta en una forma canónica (reglas sintácticas y semánticas)

Escoger los procedimientos de bajo nivel candidatos (para cada operador) ¿índices? ¿clustering? ¿rango y núm. valores?

Generar los planes y escoger el más barato usar heurísticos para reducir búsqueda

Page 5: Optimización de Preguntas

Optimización sintáctica

Entrada: expresión álgebra relacionalSalida: expr. álgebra relacional

equivalente 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

Page 6: Optimización de Preguntas

Optimización semántica

Transformar la pregunta en otra que devuelve las misma tuplas

Utilizar conocimiento semántico de la BD restr. integridad, dependencias funcionales,

claves extranjeras, reglas semánticas 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.

Page 7: Optimización de Preguntas

Optimización física: Selección

Algoritmos Búsqueda lineal Búsqueda binaria Empleo de índices (de distintos tipos)

Selectividad de una condición % de la relación que satisface la condición Ejecutar primero las selecciones de mayor

selectividad

Page 8: Optimización de Preguntas

Optimización física: Join

Algoritmos 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

Page 9: Optimización de Preguntas

Optimización física: otras op.

Proyecciones: fácil de implementar (hay que recorrer todas las tuplas)

Producto cartesiano: muy costosa Evitarla

Unión, Intersección, Diferencia Primero se ordenan las dos relaciones

Page 10: Optimización de Preguntas

Generar los planes y escoger el más barato

Planes para responder a la pregunta, y su costoCada plan se construye combinando el conjunto

de procedimientos candidatos posibles. Calcular el costo es complicado hay que estimar

tamaños de resultados intermedios (estadísticas de la BD, en el catálogo). Calcular el orden óptimo de ejecución de joins

• N! posibilidades de ejecutar un join entre N relaciones

Evitar resultados intermedios (subir selecciones)

Usar heurísticos para reducir la búsqueda

Page 11: Optimización de Preguntas

Optimización del costo:CPU + I/O + COM

BD centralizadas generalmente se tiene en cuenta sólo costo I/O

BD distribuidas en Redes Area Amplia (WAN) generalmente, sólo costo COM.

BD distribuidas en Redes de Area Local (LAN) generalmente, costos I/O y COM.

BD en servidores paralelos influyen los tres: CPU, I/O y COM.

Page 12: Optimización de Preguntas

Optimización en Oracle

Optimización basada en reglas o basada en costes (seleccionado por el usuario)

EXPLAIN PLAN: ver como se ejecutará una sentencia SQL

No hay optimización semántica hasta Oracle 8, incluido

Se puede influir en el uso o no de índices (no recomendado)

Page 13: Optimización de Preguntas

Conclusiones

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

Algunas optimizaciones (todavía) no son realizadas por los SGBD (ej. optimización semántica)

• hay que reformular algunas preguntas

El proceso de optimización de preguntas es complejo y cada SGBD lo hace distinto.

• hay que consultar el manual del SGBD concreto.

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.