Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la...

21
Dr. Víctor J. Sosa Optimización de consultas Resumen del capítulo 14 Libro: Fundamentos de Bases de Datos Silberschatz et al. 5ed. Agenda 1. Visión general 2. Estimación de las estadísticas de los resultados de las expresiones 3. Transformación de expresiones relacionales 4. Elección de los planes de evaluación 5. Vistas materializadas O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a s C o n s u l t a s

Transcript of Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la...

Page 1: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Dr. Víctor J. Sosa

Optimización de consultasResumen del capítulo 14

Libro: Fundamentos de Bases de DatosSilberschatz et al. 5ed.

Agenda

1. Visión general2. Estimación de las estadísticas de los resultados de las

expresiones3. Transformación de expresiones relacionales4. Elección de los planes de evaluación5. Vistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 2: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Es el proceso de selección del plan de evaluación de las consultas más eficiente entre las estrategias disponibles para el procesamiento de una consulta dada.

A través del álgebra relacional intenta hallar una expresión equivalente a la expresión dada

Elección de una estrategia detallada para el procesamiento de la consulta:

Selección del algoritmo que se usará para ejecutar una operaciónSelección de los índices concretos que se van a emplear

La diferencia en costo (en términos de tiempo de evaluación) entre una estrategia buena y una mala suele ser sustancial, por tanto, vale la pena la selección de una buena estrategia para elprocesamiento de la consulta.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Π nombre-cliente (σ ciudad-sucursal=”Arganzuela” (sucursal (cuenta impositor)))

Π nombre-cliente ((σ ciudad-sucursal=”Arganzuela” (sucursal)) (cuenta impositor))

ΠNombre-cliente

Ciudad-sucursal = Arganzuela

sucursal

impositorcuenta

σ

ΠNombre-cliente

Ciudad-sucursal = Arganzuela

sucursal impositorcuenta

σ

Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes que tengan una cuenta ubicada en cualquier sucursal en Arganzuela.

La consulta queda ahora de la siguiente manera:

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 3: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Etapas en la generación de planes de evaluación de consultas:

1. Generación de expresiones lógicas equivalentes a la expresión dada.

2. Anotación de las expresiones resultantes en maneras alternativas de generar planes de evaluación de consultas alternativos.

Estas etapas están entrelazadas en el optimizador de consultas y se ejecutan en ese orden consecutivamente.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Estimación de las estadísticas de los resultados de las expresiones

El costo de cada operación, depende del tamaño y de otras estadísticas de sus valores de

entrada, por ejemplo en una expresión como a (b c), para estimar el costo de combinar

a con (b c), hay que hacer estimaciones de estadísticas, como el tamaño de b c.

Información del catálogo

Los catálogos de un SGDB almacenan la siguiente información estadística sobre las relaciones

de las bases de datos:

nr numero de tuplas de la relación r

br numero de bloques que contienen tuplas de la relación r

tr tamaño de cada tupla de la relación r en bytes

fr factor de bloqueo de la relación r (el numero de tuplas que caben en cada bloque)

V(A, r) numero de valores distintos que aparecen en la relación r para el atributo A

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 4: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Información del catalogo

Las estadísticas sobre los índices, como las alturas de los árboles B+ y el número de páginas hojas de los índices, se guardan en el catálogo.

La bases de datos almacenan la distribución de los valores de cada atributo en forma de histograma

En los histogramas los valores de atributos se dividen en una serie de rangos y con cada rango el histograma asocia el numero de tuplas, cuyo valor del atributo se halla en ese rango.

Por ejemplo el rango de valores del atributo edad de la relación persona.

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Estimación del tamaño de la selecciónLa estimación del tamaño de una operación selección depende del predicado de la selección.

Primero se considerará un solo predicado de igualdad, luego un predicado de comparación y finalmente combinaciones de predicados.

σ A=a (r): Si se supone una distribución uniforme de los valores, se puede estimar que el

resultado de la selección tiene nr / V(A,r) tuplas. En pocas palabras cada valor aparece con la misma probabilidad, lo que puede ser irreal.

Considérese una selección de la forma σ A≤v (r). Si el valor usado en la comparación (v) esta disponible en el momento de la estimación del costo, puede hacerse una estimación mas precisa. Los valores mínimo y máximo (min (A, r) y max (A, r)) del atributo pueden almacenarse en el catalogo.

Suponiendo que los valores están distribuidos de manera uniforme, se puede estimar el número de registros que cumplirán la condición A ≤ v, como 0 si v < min (A, r), como nr, si v >= max (A, r)

nr . v - min (A, r)

max (A, r) - min (A, r)

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 5: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Selecciones complejas:

Conjunción la selección conjuntiva es de la forma:

σ θ1 ٨ θ2 ٨… ٨ θn (r)

Se puede estimar el tamaño de esta selección con la siguiente formula:

Disyunción la selección disyuntiva es de la forma:

σ θ1V θ2 V … V θn (r)

Una conjunción disyuntiva se satisface por la unión de todos los registros que satisfacen todas las condiciones simples

La probabilidad de que la tupla satisfaga la disyunción es 1 menos la probabilidad de que no satisfaga ninguna de las condiciones

nr *S1 * S2 *…* Sn

nrn

1 – (1 – s1/nr) * (1 – s2/nr) * … * (1 – sn/nr) *

Multiplicando este valor por nr se obtiene el numero estimado de tuplas que satisfacen la selección

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Selecciones complejas:

Negación a falta de valores nulos, el resultado de una selección σ¬θ(r) es simplemente las tuplas de r que no están en σ θ(r).

El numero de tuplas de σ¬θ(r) se estima que es n(r) menos el número estimado de tuplas σθ(r).

Se puede pueden tener en cuenta los valores nulos estimando el número de tuplas

para las que la condición θ se evalúa como desconocida y restar ese número de la

estimación anterior que ignora los valores nulos.

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 6: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Estimación del tamaño de las reuniones

El producto cartesiano r x s contiene nr * ns tuplas

Cada tupla r * s ocupa tr + ts bytes de donde se puede calcular el producto cartesiano

Sean r(R) y s(S) dos relaciones:

Si R ∩ S = 0 en la cual las relaciones no tienen atributos en común, entonces la unión r U s = r x s.

Si R ∩ S es clave de R, entonces se sabe que cada tupla s se combinara como máximo con una tupla de r, por lo tanto el numero de tuplas de r U s no es mayor que el numero de tuplas de s.

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Estimación del tamaño de las reuniones cont…

tuplas de r s, ya que es el número promedio de tuplas de s con valor dado para los atributos de A. Para estimar el número de tuplas de r:

Si R ∩ S no sea clave de R ni de S. Considérese una tupla t de r y R ∩ S = {A}. Se estima que la tupla t produce:

ns

V(A, s)

nr * ns

V(A, s)

Si se invierten los papeles de r y de s en la fórmula anterior se estima el número de tuplas de s:

nr * ns

V(A, r)

Estas 2 estimaciones son diferentes, si esta situación se produce, probablemente haya tuplas pendientes que no participen en la reunión, por lo tanto es probable que la menor de las dos estimaciones sea la mas precisa

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 7: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Estimación del tamaño de las reuniones cont… (ejemplo)Para ilustrar todas las maneras de estimar el tamaño de las reuniones considere l a expresión: impositor cliente

Suponiendo que se dispone información en el catálogo sobre las 2 relaciones:

ncliente = 10,000.

fcliente = 25, lo que implica que bcliente = 10,000/25 = 400.

nimpositor = 5,000.

fimpositor = 50, lo que implica que bimpositor = 5,000/50 = 100.

V(nombre_cliente, impositor) = 2,500, lo que implica que en promedio, cada cliente tiene 2 cuentas

Ahora haremos el mismo cálculo pero sin usar las claves externas con V(nombre_cliente, impositor) = 2,500 y V(nombre_cliente, cliente) = 10,000

V(nombre_cliente, impositor) = 5,000 * 10.000/2,500 = 20,000

V(nombre_cliente, cliente) = 5,000 * 10,000/10,000 = 5,000

Se escoge la menor que en este caso es igual a la calculada anteriormente

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Estimación del tamaño de otras operaciones

Proyección: el tamaño estimado de una proyección (números de registros de las tuplas) de la forma ΠA(r) es V(A, r)

Agregación: el tamaño de A ç F (r) es V(A, r) ya que hay una tupla por cada valor distinto de A.

Operación de conjuntos: si las dos entradas de una operación de conjuntos son selecciones de la misma relación, se puede reescribir la operación de conjuntos como disyunciones, conjunciones o negaciones. Por ejemplo de σθ1 (r) U σθ2 (r) puede reescribirse como σθ1 V σθ2

Reunión externa: el tamaño estimado de r s es el tamaño de r s mas eltamaño de r

El de r s es simétrico

El de r s es el tamaño de r s mas los tamaños de r y s

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 8: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Estimación del numero de valores distintos

Para las selecciones el número de valores distintos de un atributo o de un conjunto de atributos

Si la condición de selección θ obliga a que A adopte un valor especificado por ejemplo A=3, V(Aσθ(r))=1

Si θ obliga a que A adopte un valor de entre un conjunto especificado de valores (A=1 V A =3 V A=4), entonces V(A, σθ(r)) se define como el numero de valores especificados.

Si la condición de selección θ es de la forma A op v, donde op es un operador de comparación V(A, σθ(r)), se estima que es V(A, r)* s, donde s es el conjunto de valores que puede tomar A.

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Estimación del numero de valores distintos

Para las reuniones el numero de valores distintos de un atributo o de un conjunto de atributos puede estimarse de las sig. maneras:

Si todos los atributos de A proceden de r, V(A, r s) se estima como: min (V(A, r), nr s)

Si todos los atributos de A proceden de s, V(A, r s) se estima como: min (V(A, s), nr s)

Si A contiene atributos A1 de r y A2 de s, entonces V(A, r s) se estima como:

min (V(A1, r) * V(A2-A1, s), V(A1-A2, r) * V(A2, s), nr s)

Algunos de los atributos pueden estar en A1 y en A2, y que A1 – A2 y A2 – A1, denotan respectivamente a los atributos de A que solo proceden de r y a los A que solo proceden de s

Estimación de las estadísticas de los resultados de las expresiones

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 9: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Transformación de Expresiones Relacionales

Las consultas se pueden expresar de varias maneras diferentes, con costos de evaluación diferentes, en vez de tomar la expresión relacional original se consideran expresiones alternativas equivalentes.

Dos expresiones en algebra son equivalentes si, las dos expresiones generan el mismo conjunto de tuplas.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Reglas de equivalenciaEstablece que dos expresiones son equivalentes, si se puede sustituir la primera

por la segunda forma o viceversa.

1.Las operaciones de selección conjuntivas pueden dividirse en una secuencia de selecciones individuales, llamada cascada de restricciones σ

σθ1 ٨ θ2 (E) = σθ1(σ θ2 (E))

2.Las operaciones de selección son conmutativas

σθ1(σ θ2 (E)) = σθ2(σ θ1 (E))

3.Solo son necesarias las ultimas operaciones de una secuencia de operaciones de proyección, las demás pueden omitirse. Esta transformación puede dominarse cascada de proyecciones Π

ΠL1 (Π L2 (…(Π Ln (E))…))= Π L1 (E)

4.Las selecciones pueden combinarse con los productos cartesianos y con las reuniones zeta.

σθ (E1 x E2) = E1 θ E2

σθ1 (E1 θ2 E2) = E1 θ1 ٨ θ2 E2

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 10: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Reglas de equivalencia

5. Las operaciones de reunión zeta son conmutativas

E1 θE2 = E2 θE1

6. a. Las operaciones de unión natural son asociativas.

(E1 E2 ) E3 = E1 (E2 E3)

b. Las reuniones zeta son asociativas en el sentido siguiente:

(E1 θ1E2 ) θ2Λ θ3E3 = E1 θ1Λ θ3(E2 θ2E3)

Donde θ2 implica solamente atributos de E2 y E3. Cualquiera de estas condiciones puede estar vacía; por lo tanto, se deduce que el producto cartesiano también es asociativo.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Reglas de equivalencia

7.La operación selección se distribuye por la operación reunión zeta bajo las 2 condiciones siguientes:

a. Cuando todos los atributos de la condición de selección θ0 implican únicamente los atributos de una de las expresiones que se están reuniendo

σ θ0(E1 θE2) =(σ θ0(E1)) θ E2

b. Cuando la condición de selección θ1 implican únicamente los atributos de E1 y θ0 implica únicamente los atributos de E2

σ θ1٨θ2 (E1 θ E2 ) =(σ θ1(E1)) θ (σ θ2(E2))

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 11: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Reglas de equivalencia

8. La operación proyección se distribuye entre la operación reunión zeta bajo las condiciones siguientes:

a. Sean L1 y L2 atributos de E1 y E2, respectivamente. Suponga que la condición de reunión θ implica únicamente los atributos de L1 y L2

Π L1 U L2 (E1 θ E2)= (Π L1 (E1) θ (Π L2 (E2))

b. Considérese una reunión E1 θ E2 Sean L1 y L2 conjuntos de atributos de E1 y E2. Sean L3 los atributos de E1 que están implicados en la condición de reunión θ, pero que no están en L1 U L2 y los atributos de E2 Sean L4 los atributos de E2que están implicados en la condición de reunión θ, pero que no están en L1 U L2.

Π L1 U L2 (E1 θ E2)= Π L1 U L2((Π L1 U L3(E1)) θ(Π L2 U L4(E2)))

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Reglas de equivalencia

9. Las operaciones de conjuntos unión e intersección son conmutativas:

E1 U E2= E2 U E1E1 Π E2= E2 Π E1

La diferencia de conjuntos no es conmutativa

10. La unión y la intersección de conjuntos son asociativas.

(E1 U E2) U E3 = E1 U ( E2 U E3 ) (E1 Π E2) Π E3 = E1 Π ( E2 Π E3 )

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 12: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Reglas de equivalencia

11. La operación de selección se distribuye por las operaciones de unión, intersección y diferencia de conjuntos.

σP(E1 - E2)= σP(E1 ) – σP(E2)

En esta equivalencia se puede sustituír el – por U o Π y es válida.

σP(E1 - E2)= σP(E1 ) – E2

En esta equivalencia se puede sustituír el – por Π, pero no se cumple con U.

12. La operación proyección es distributiva con respecto a la operación unión.

ΠL (E1 U E2) = ((ΠL(E1 )) U (ΠL(E2 ))

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Ejemplos de transformaciones

Esquema _ sucursal=(nombre _ sucursal, ciudad _ sucursal, activos)Esquema _ cuenta=(numero _ cuenta sal, nombre _ sucursal, saldo)

Esquema _ impositor=(nombre _ cliente, número _ cuenta)

Π nombre _ cliente (σ ciudad _ sucursal=”Arganzuela” (sucursal (cuenta impositor)))

Π nombre _ cliente ((σ ciudad _ sucursal= ”Arganzuela” (sucursal)) (cuenta impositor))

Esta expresión es equivalente a la expresión algebraica original, pero generando relaciones intermedias de menor tamaño, se utiliza la regla 7a.

Se transforma en la siguiente expresión:

Supóngase que se modifica la consulta original, para restringir la atención a los clientes que tienen un saldo superior a 1000 €:

Π nombre _ cliente (σ ciudad _ sucursal=”Arganzuela” ٨ saldo >1000

(sucursal (cuenta impositor)))

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 13: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Π nombre _ cliente ((σ ciudad _ sucursal= ”Arganzuela” ٨ saldo >1000 (sucursal

cuenta)) impositor)

Considérese ahora la subexpresión de selección de esta expresión. Empleando la regla 1 se puede dividir la selección en 2

Usando la regla 7a:

Π nombre _ cliente (σ ciudad _ sucursal=”Arganzuela” ٨ saldo >1000

(sucursal (cuenta impositor)))

σ ciudad _ sucursal= ”Arganzuela” (σ saldo >1000 (sucursal cuenta))

σ ciudad _ sucursal= ”Arganzuela” (sucursal) σ saldo >1000 (cuenta)

Aplicando nuevamente la regla 7a, obtenemos la siguiente expresión:

Ejemplos de transformaciones

Esquema _ sucursal=(nombre _ sucursal, ciudad _ sucursal, activos)Esquema _ cuenta=(numero _ cuenta sal, nombre _ sucursal, saldo)

Esquema _ impositor=(nombre _ cliente, número _ cuenta)

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Ordenación de las reuniones

Es importante conseguir una buena ordenación de las operaciones reunión para reducir el tamaño de los resultados temporales

La mayor parte de los optimizadores de consultas prestan mucha atención al orden de las mismas.

Por ejemplo en la regla 6ª dice que las uniones son asociativas, por lo tanto, para todas las relaciones r1, r2 y r3

(r1 r2 ) r3 =r1 (r2 r3)

Π nombre _ cliente ((σ ciudad _ sucursal= ”Arganzuela” (sucursal)) (cuenta impositor))

σ ciudad _ sucursal= ”Arganzuela” (sucursal) cuenta

σ ciudad _ sucursal= ”Arganzuela” (sucursal)

Considerando nuevamente la expresión anterior:

Se podrá escoger calcular primero unión cuenta _ impositor y luego combinar el resultado con esta expresión:

Es probable que la unión cuenta _ impositor sea una relación de gran tamaño, ya que contiene una tupla por cada cuenta. En cambio:

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 14: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Enumeración de expresiones equivalentes

Los optimizadores de consultas usan las reglas de equivalencia para generar de manera

sistemática expresiones equivalentes a la consulta dada.

Por ejemplo, dada una expresión, si alguna subexpresion coincide alguno de sus lados

(izquierdo o derecho) con una regla de equivalencia, el optimizador genera una nueva

expresión transformada, de modo que coincida con el otro lado de la regla. Este proceso

continua hasta que no se puedan generar expresiones nuevas.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

La generación de expresiones solo es parte del proceso de optimización de consultas, ya que cada operación de la expresión puede implementarse con algoritmos diferentes.

Por lo tanto, se necesita un plan de evaluación para definir exactamente el algoritmo que se usara para cada operación y el modo en que se coordinará la ejecución de las operaciones.

Como ya se ha visto se pueden emplear varios algoritmos para cada operación relacional, lo que permite tener planes de evaluación alternativos.

Una manera de elegir un plan de evaluación para una operación de consulta es sencillamente elegir el algoritmo de menor costo para cada operación.

Se puede elegir cualquier ordenación de las operaciones que asegure que las operaciones ubicadas por debajo en un árbol se ejecuten antes que las operaciones situadas arriba.

La selección del algoritmo más económico para cada operación no es necesariamente el mejor.

Elección de los planes de evaluación

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 15: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Puede ser que una reunión por mezcla en un nivel dado resulte más costosa que una reunión por asociación, pero que proporcione una ordenación que posteriormente de menor costo a las siguientes operaciones.

Por lo tanto para elegir el mejor algoritmo global es necesario considerar las expresiones alternativas de cada consulta y los algoritmos alternativos, incluso los algoritmos no óptimos para cada una de las operaciones.

Elección de los planes de evaluación

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Los optimizadores basados en el coste generan un conjunto de planes de evaluación a partir de la consulta dada empleando las reglas de equivalencia y se elige el de menor costo.

Para consultas complejas el número de planes de consulta diferentes que son equivalentes a un plan dado puede ser muy grande. Por ejemplo considerando la expresión:

Con n = 3, hay 12 ordenaciones diferentes de la mezcla

En general, con n relaciones, hay (2(n-1))!/(n-1)! órdenes de reunión diferentes.

Elección de los planes de evaluación

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 16: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Para números de reuniones pequeños es aceptable, para números grandes es difícil manipular.

Pero se pueden manipular en subconjuntos y calcular individualmente el mejor orden de reunión eliminando los más costosos de cada subconjunto. Usando esta técnica se puede implementar el algoritmo de programación dinámica para la optimización del orden de reunión óptimo.

Una desventaja de la optimización por costos es el costo de la misma optimización. El numero de los planes de evaluación distintos para una consulta puede ser grande y encontrar el plan optimo lleva mucho trabajo de cómputo.

Optimización basada en coste

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Se dice heurística porque suele ayudar a reducir el costo.

Regla para la transformación de consultas del álgebra relacional:

“Realizar las operaciones de selección tan pronto como sea posible”Los optimizadores heurísticos usan esta regla sin averiguar si se reduce el costo mediante esta transformación. Se dice que la regla anterior es heurística porque ayuda a reducir el costo, aunque no lo haga siempre.

La operación proyección también reduce el tamaño de las relaciones, por lo cual siempre que haya que generarse una relación temporal, resulta bueno aplicar todas las proyecciones posibles, esta seria una regla acompañante a la heurística:

“Realizar las proyecciones tan pronto como sea posible”Suele resultar mejor hacer primero las selecciones antes que las proyecciones, ya que la selección tiene la posibilidad de reducir mucho el tamaño de las relaciones.

La heurística no siempre reduce el costo.

Optimización Heurística

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 17: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Subconsultas anidadas de la cláusula where, en SQL son tratadas como funciones que toman parámetros y devuelven uno, varios o ningún conjunto de valores, los parámetros son las variables de la consulta del nivel externo que se usan en la subconsulta anidada, (estas variables se llaman variables de correlación), considerando la siguiente consulta en SQL:

select nombre_clientefrom prestatariowhere exists ( select * from impositor

where impositor.nombre_cliente=prestatario.nombre_cliente)

La subconsulta toma un parámetro (prestatario.nombre_cliente), y devuelve el conjunto de todos los impositores con el mismo nombre.

Optimización de las subconsultas anidadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

SQL evalúa la consulta global calculando el producto cartesiano de las relaciones de la cláusula from externa y comprobando después los predicados de la cláusula where para cada tupla del producto.

El ejemplo anterior, el predicado comprueba si el resultado de la evaluación de la subconsulta esta vacío.

Esta técnica para evaluar una consulta con una subconsulta se denomina evaluación correlacionada. Esta consulta no resulta muy eficiente ya que se evalúa por separado para cada tupla de la consulta del nivel externo. Provoca muchas operaciones de E/S al disco.

Los optimizadores en SQL intentan transformar las subconsultas anidadas en uniones siempre que resulte posible. Cuando la transformación no es posible, el optimizador conserva las subconsultas como expresiones independientes, las optimiza por separado y luego las evalúa mediante la evaluación correlacionada.

Optimización de las subconsultas anidadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 18: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Como ejemplo de transformación de una subconsulta anidada en una unión, la consulta del ejemplo anterior se puede reescribir como:

select nombre_clientefrom prestatario, impositorwhere impositor.nombre_cliente = prestatario.nombre_cliente

En general, puede ser que no resulte posible desplazar las relaciones de la subconsulta anidada la cláusula from de la consulta externa. En lugar de eso se crea una tabla temporal que contiene el resultado de la consulta anidada sin las selecciones empleando las variables de correlación de la consulta externa y se reúne la tabla temporal con la consulta del nivel externo.

Optimización de las subconsultas anidadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Una vista materializada es una vista cuyo contenido se calcula y se almacena a diferencia de una vista que solo almacena la consulta que la define.

Las vistas materializadas resultan importantes para mejorar el rendimiento de algunas aplicaciones.

Resulta mas económico en muchos casos leer el contenido de una vista materializada que calcular el contenido de la vista ejecutando la consulta que la define.

Vistas materializadasVistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 19: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Un problema con las vistas materializadas es que hay que mantenerlas actualizadas cuando se modifican los datos empleados en la definición de la vista.

La tarea de mantener actualizada una vista materializada con los datos subyacentes se denomina mantenimiento de la vista.

Una forma de mantener actualizada una vista es mediante código que actualiza los valores.

Otra opción para el mantenimiento es la definición de desencadenadores para la inserción, el borrado y la actualización. Los desencadenadores deben modificar el contenido de la vista materializada para tener en cuenta el cambio que ha provocado que se active el desencadenador. Una manera sencilla de hacer esto es volver a calcular completamente la vista en cada actualización.

Mantenimiento de las vistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Una mejor opción consiste en modificar solo las partes afectadas de la vista materializada, lo que se conoce como mantenimiento incremental de la vista.

Los sistemas de bases de datos modernos proporcionan soporte directo para el mantenimiento de las vistas.

Los programadores de bases de datos no necesitan definir disparadores para el mantenimiento. Basta haber declarado materializada una vista y el sistema de bases de datos calcula el contenido y lo actualiza de manera incremental cuando se modifican los datos subyacentes.

La mayoría de los sistemas de bases de datos realizan un mantenimiento inmediato de las vistas. Es decir, se realiza un mantenimiento incremental tan pronto como sucede una actualización.

Algunos sistemas de bases de datos realizan el mantenimiento diferido, por ejemplo las actualizaciones se recopilan durante el día y en la noche se calcula la actualización.

Mantenimiento de las vistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 20: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

Mantenimiento incremental de las vistas

Los cambios de cada relación que puedan hacer que se quede desactualizada una vista materializada son las inserciones, eliminaciones y actualizaciones.

Las actualizaciones a cada tupla se sustituyen por la eliminación seguida por la inserción de la tupla actualizada, por tanto solo se consideran inserciones y eliminaciones.

Los cambios (inserciones y eliminaciones) en la relación o en la expresión se denominan su diferencial.

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Operaciones soportadas por las vistas materializadas

Reunión

Selección y proyección

De agregación ( count, sum, avg, min y max)

Otras operaciones ( intersección, unión, y diferencia de conjuntos )

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Page 21: Optimización de consultas - tamps.cinvestav.mxvjsosa/clases/bd/Optimizacion... · Considérese la siguiente expresión de álgebra relacional: Hallar los nombres de todos los clientes

La optimización de consultas puede llevarse a cabo tratando las vistas materializadas igual que relaciones normales. Las vistas materializadas ofrecen mas oportunidades para la optimización en:

Reescritura de las consultas.

Suponiendo que existe una vista materializada v= r s, y que un usuario emite la consulta: r s t. Puede ser que la reescritura de la consulta:v t

proporcione un plan de consulta más eficiente que la optimización de la primer consulta.

Optimización de consultas y vistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s

Sustitución del uso de una vista materializada por la definición de la vista.

Supongamos que tenemos la vista materializada v = r s, sin índices definidos sobre ella, y que un usuario emite la consulta: σA=10(v).

Supongamos también que s tiene un índice definido sobre el atributo común B, y que r tiene un índice sobre el atributo A. Puede ser que el mejor plan de consulta sea sustituir a v por r s lo que puede llevar al plan de consulta σA=10(r) s; la selección y la union pueden llevarse de manera mas eficiente empleando los índices sobre r.A y sobre s.B, respectivamente.

Entonces la evaluación directa sobre v puede ser que necesite mayor exploración completa sobre v, lo que puede resultar mas costoso.

Optimización de consultas y vistas materializadas

O p t i m i z a c i ó n d e O p t i m i z a c i ó n d e C o n s u l t a sC o n s u l t a s