procesamiento y optimización de consultas · 2016. 6. 9. · procesamiento y optimización de...

30
Procesamiento y Optimización de Consultas Bases de Datos 2 - Tecnologo de Informatica BD2 - Programación

Upload: others

Post on 15-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Procesamiento y Optimización de ConsultasBases de Datos 2 - Tecnologo de Informatica

BD2 - Programación

Page 2: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Outline

1 Proceso de Optimización

2 Optimización por Heurísticas

3 Optimización por Costos

BD2 - Programación

Page 3: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Outline

1 Proceso de Optimización

2 Optimización por Heurísticas

3 Optimización por Costos

BD2 - Programación

Page 4: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

¿Cómo se resuelven las consultas?

BD2 - Programación

Page 5: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Estrategias usuales de los optimizadores

Proceso detalla de optimización.Optimización Heurística

Basada en equivalencia de las expresiones del álgebra yciertas estrategias básicas para limitar el tamaño de losresultados.

Optimización por CostosBasada en estimaciones y datos del catálogo que permitenseleccionar un mejor plan de acceso.

BD2 - Programación

Page 6: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Proceso de Optimización

BD2 - Programación

Page 7: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Resumen del Proceso de Optimización

Generación del Algebra (Árbol Canónico)Generación de planes lógicos (Optimización Heurística)

Implica la aplicación de determinadas estrategias(heurísticas) y consultas al catálogo para tamaños de lasrelaciones para transformar el árbol original.

Generación de planes físicos (Optimización por Costos)Implica asociar a cada operación de los planes lógicosgenerados una o más implementaciones.Queé implementación depende de las estructuras de datosdisponibles.

Selección del Plan final (Optimización por Costos)Implica la evaluación de los planes físicos generados enbase a las cantidades de operaciones de I/O que realizacada algoritmo.

BD2 - Programación

Page 8: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Outline

1 Proceso de Optimización

2 Optimización por Heurísticas

3 Optimización por Costos

BD2 - Programación

Page 9: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Optimización por Heurísticas

Cambiar la consulta original por otra equivalente de formade minimizar los resultados intermedio.Pueden existir varias alternativas.Se basa en aplicar equivalencias de los operadores delálgebra de forma que:

Las selecciones y las proyecciones se apliquen lo antesposible.Las operaciones de selección y join que son másrestrictivas se apliquen antes que las demás.

BD2 - Programación

Page 10: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Reglas de equivalencia de expreiones

σp1∧p2 (R) = σp1 (σp2 (R)) Cascada de

σp1 (σp2 (R)) = σp2 (σp1 (R)) Conmutativa de la selección

πan (πak ...an (R)) = πan (R))

πa1...an (σp (R)) = σp (πa1...an (R)) [si p sólo contienea1 . . . an]

σp (R × E) = R onp E Equivalencia join - producto y selección

R onp E = E onp R Conmutativa del join

(R onp E) onp S = R onp (E onp S) Asociativa del join

σp (R × E) = (σp (R))× E [si p sólo contiene atributos deR]

πan ∪ ak (R × E) = πan (R)× πak (E) [si an es de R y ak esde E ]

BD2 - Programación

Page 11: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Reglas de equivalencia de expreiones

R ∪ E = E ∪ R Conmutativa de la unión

R ∩ E = E ∩ R Conmutativa de la intersección

R ∪ (E ∪ D) = (R ∪ E) ∪ D Asociativa de la unión

R ∩ (E ∩ D) = (R ∩ E) ∩ D Conmutativa de la intersección

σp (R ∪ E) = σp (R) ∪ σp (E)

σp (R ∩ E) = σp (R) ∩ σp (E)

σp (R − E) = σp (R)− σp (E)Distributivas

πan (R ∪ E) = πan (R) ∪ πan (E)

BD2 - Programación

Page 12: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

HeurísticasReglas para reducir los tamaños intermedios

1 Cambiar las selecciones conjuntivas por una “cascada” deselecciones simples.

2 Mover las selecciones lo más abajo que se pueda en elárbol.

3 Reacomodar las hojas del árbol de modo que lasselecciones más restrictivas son ejecutadas antes,evitando productos cartesianos.

4 Cambiar secuencias de selecciones y productos por Join.

5 Mover las proyecciones lo más abajo posible en el árbol,agregando las proyecciones que sean necesarias.

BD2 - Programación

Page 13: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo de optimización heurísticas

BD2 - Programación

Page 14: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo

Esquema:

Consulta:

SELECT E.APELLIDOFROM EMPLEADO AS E, TRABAJA_EN AS T, PROYECTO AS PWHERE P.NombreProyecto=’Acuario’ AND

P.NumProyecto=T.NumProy AND T.DniEmpleado=E.Dni ANDE.FechaNac>’31−DIC−57’

BD2 - Programación

Page 15: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo

πApellido

σNombreProyecto=′Acuario′∧NumProyecto=NumProy

∧DniEmpleado=Dni∧ FechaNac>′31−DIC−57′

×

PROYECTO×

TRABAJA_ENEMPLEADO

πApellido

σNumProyecto=NumProy

×

σNombreProyecto=′Acuario′

PROYECTO

σDniEmpleado=Dni

×

TRABAJA_ENσFechaNac>′31−DIC−57′

EMPLEADO

1, 2

BD2 - Programación

Page 16: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo

πApellido

σDniEmpleado=Dni

×

σFechaNac>′31−DIC−57′

EMPLEADO

σNumProyecto=NumProy

×

TRABAJA_ENσNombreProyecto=′Acuario′

PROYECTO

πApellido

onDniEmpleado=Dni

σFechaNac>′31−DIC−57′

EMPLEADO

onNumProyecto=NumProy

TRABAJA_ENσNombreProyecto=′Acuario′

PROYECTO

3 4

BD2 - Programación

Page 17: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo

πApellido

onDniEmpleado=Dni

πDni,Apellido

σFechaNac>′31−DIC−57′

EMPLEADO

πDniEmpleado

onNumProyecto=NumProy

πDniEmpleado,NumProy

TRABAJA_EN

πNumProyecto

σNombreProyecto=′Acuario′

PROYECTO

5

BD2 - Programación

Page 18: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Outline

1 Proceso de Optimización

2 Optimización por Heurísticas

3 Optimización por Costos

BD2 - Programación

Page 19: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Optimización por Costos

Plan FísicoLe asocia a cada operador del álgebra que aparece en unplan lógico, una implementación.Como se pueden considerar diferentes implementacionespara cada operador, entonces un mismo plan lógico puedeoriginar diferentes planes físicos.Es necesario estimar el costo (cantidad de operaciones deI/O) de los diferentes planes que se generen y elegir el decosto mínimo.

Para evaular el costo, es necesario considerar ciertosparámetros que tienen influencia en el cálculo de lacantidad de operaciones de I/O.

BD2 - Programación

Page 20: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Parámetros para la Estimación de Costos y TamañosNombre Definción Notación FórmulaTamaño oCardinalidad deuna Relación T

Cantidad de Registros r , nT -

Tamaño delRegistro de unaRelación T

Cantidad de Byes de un registro R, RT -

Cantidad deBloques para unaRelación T

Cantidad de bloques necesariospara almacenar los registros deuna relación

b, bT -

Factor deBloqueo para unaRelación o índiceT

Cantidad de registros que entranen un bloque (blocking factor)

bfr , bfrT bbytes delbloque/bytes delregistroc

Cantidad deniveles de uníndice

Cantidad de niveles de un índice(la fórmula depende del tipo)

x , xT logk (nT ) + 1(para un B+ con kpunteros pornodo sobre clave)

Cantidad devalores distintosdel atributo A enla tabla T

Cantidad de valores distintos quetiene un atributo en una tabla

d ,V (A,T ),NDV (A,T )

nT (para unatributo clave)

BD2 - Programación

Page 21: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Parámetros para la Estimación de Costos y Tamaños

Nombre Definción Notación FórmulaSelectividadde unaselección

Fracción que indica cuántosregistros se debenseleccionar con respecto ala tabla original

sl, sl (σc (T )) 1/V (A,T ) (si lacondición es unaigualdad por el atributoA y se asumedistribución uniforme)

Selectividadde un join

Fracción que indica cuántosregistros se debenseleccionar con respecto alproducto cartesiano original

js, js (R onc S) 1/Min (V (A,R) ,V (A,S))(si es el join natural deR y S por el atributo A)

Cardinalidadde unaselección

Cantidad de registros en elresultado de una selección

s, T (σc (R)) nR ∗ sl (σc (R))

Cardinalidadde un join

Cantidad de registros en elresultado de un join

j, T (R onc S) nR ∗ nS ∗ js (R onc S)

- Información del tipo decada índice (si es primario,o arbol B+, etc.)

- -

BD2 - Programación

Page 22: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones de los operadores

A cada operador de un plan lógico se le asigna unaimplementación.Luego hay que estimar el costo de todo el plan basándoseen los costos de cada algoritmo.Es importante la estrategia de implementación:

Pipelined: hay operadores que se ejecutansimultáneamente y pueden pasarse los resultados amedida que se generan. No necesita grabar los resultadointermedios.No Pipelined: los operadores se ejecutan secuencialmentey es necesario grabar resultados intermedios.

Asumimos:Selección y Join (No Pipelined): Se debe considerar elcosto de grabar el resultado intermedio.Proyección (Pipelined): no hay costo intermedio.

BD2 - Programación

Page 23: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones de los operadoresEstimaciones de Costos

En el costo consideramos sólo los accesos a disco:de lectura.de grabación.

Siempre se realizan las operaciones de a bloque (página)que pueden contener varios registros de índice o datos.Los costos de lectura dependen de la organización de losdatos.El costo de grabación siempre es el costo de grabar todoel resultado (R):

dnR/bfrRe donde bfrR = (cant. bytes bloques) / (cant. bytestupla)

Al ver los algoritmos consideramos las lecturas, pero en elcosto debemos agregar la grabación.

BD2 - Programación

Page 24: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones de la selección σ (R)

Búsqueda linealRestricción de uso: ninguna.

Descripcón: leer cada registro y si cumple la condición sepone en el resultado.Costos de lectura:

Peor caso: bR (cantidad de bloques de la relación R)Promedio: bR/2

Búsqueda BinariaRestricción de uso: registros ordenados.

Descripcón: leer el bloque del medio y en función de lacondición leer el del medio de la primera o segunda mitad yasí hasta encontrarlo o no tener más bloques para leer.

Costos de lectura: log2 bR + ds/bfrRe − 1

BD2 - Programación

Page 25: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones de la selección σ (R) con Índices

Primario o ClusterRestricción de uso: registros ordenados.Costos de lectura:

x + ds/bfrRe (x es la cantidad de niveles del índice)Si el índice es primario x+1 (sólo 1 bloque tiene el valorbuscado)

HashRestricción de uso: sólo para condiciones de igualdad.

Costos de lectura: 1 o 2 dependiendo del tipo de hash.

Secundario con B+Restricción de uso: ninguna

Costos de lectura: x + s (peor caso, asumiendo que cadaregistro está en un bloque distinto.

BD2 - Programación

Page 26: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones del Join R onA=B S

Loop anidado por registrosRestricción de uso: ninguna

Descripcón: para cada registro de R acceder a todos losbloques de S y combinar ese registro de R con todos los deS.

Costos de lectura: bR + nR ∗ bS

Loop anidado por bloquesRestricción de uso: ninguna

Descripcón: para cada bloque de R combinar todos losregistros de ese bloque con todos los bloques de S.

Costos de lectura: bR + dbR/ (M

Cantidad de buffers

− 2)e ∗ bS

BD2 - Programación

Page 27: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementaciones del Join R onA=B S

Sort-Merge JoinRestricción de uso: las dos tablas deben tener losregistros ordenados. Si no es así hay que agregar loscostos de ordenación.Descripcón: recorrer R y S en paralelo combinando losregistros.Costos de lectura: bR + bSCostos de ordenación: 2 ∗ b ∗ (1 + log2 b)

Index Join (Single Loop)Restricción de uso: existencia de un índice para S.Descripcón: recorrer R y acceder por el índice a S.Costos de lectura: bR + (nR ∗ Z ) donde Z depende deltipo de índice,

secundario: Z = x + sS

cluster: Z = x + dsS/bfrSeprimario: Z = x + 1hash = h

BD2 - Programación

Page 28: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementacion de los Operadoresσc (R)

Algoritmo Costo Condición Organización

σc (R)

Búsqueda Lineal bR (peor caso)bR/2 (prom)

Todas –

Búsqueda Binaria log2 bR +ds/bfrRe − 1

Todas Ordenado

Índice Primario x + 1 Igualdad Ordenado

Hash 1 o 2 Igualdad –

Índice Primario x + (b/2) (prom) de orden Ordenado

Índice Cluster x + ds/bfrRe Todas Ordenado

Índice secundario B+ x + s (peor caso) Todas –

Grabación Intermedia s/bfrR Todas –

BD2 - Programación

Page 29: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Implementacion de los OperadoresR onc S

Algoritmo Costo Condición Organización

R onc S

Loop Anidado(registros)

bR + (nR ∗ bS) Todas –

Loop Anidado(bloque)

bR+d(bR/ (M − 2)e∗bS Todas –

Sort Merge bR + bS +costo ordenación

Todas Índice

Index join bR + nR ∗ Z Todas Índice

BD2 - Programación

Page 30: Procesamiento y Optimización de Consultas · 2016. 6. 9. · Procesamiento y Optimización de Consultas - Bases de Datos 2 - Tecnologo de Informatica Author: Guillermo Fernandez

Ejemplo de optimización por costos

BD2 - Programación