Please enable JavaScript.
Coggle requires JavaScript to display documents.
OPTIMIZACIÓN DE CONSULTAS (VISTAS MATERIALIZADAS (Optimización de…
OPTIMIZACIÓN DE CONSULTAS
VISIÓN GENERAL
El optimizador de consultas diseña un plan de evaluación de
consultas que calcula el resultado de la expresión dada, y que sea la manera menos costosa.
El optimizador tiene que estimar el
coste de cada plan de evaluación
Para hallar el plan de evaluación de consultas menos costoso el optimizador necesita generar planes alternativos que produzcan el mismo resultado que la expresión dada
ESTIMACIÓN DE LAS ESTADÍSTICAS DE LOS RESULTADOS DE LAS EXPRESIONES
se relacionaran algunas estadísticas de las relaciones de bases de datos que se almacenan en los catálogos de los sistemas de bases de datos y luego se mostrará el modo de utilizar las estadísticas para estimar estadísticas de los resultados de varias operaciones relacionales.
Estimación del tamaño de la selección
depende del predicado de la selección.
Selecciones complejas
Conjunción, disyunción, negación.
Estimación del tamaño de las reuniones
Estimar el tamaño del resultado de una reunión. La estimación del tamaño de una reunión natural resulta algo más complicada que la estimación del tamaño de una selección del producto cartesiano.
Estimación del tamaño de otras
operaciones
Proyección, agregación, operaciones de conjuntos, reunión externa
Estimación del número de valores
distintos
selecciones con el número de valores distintos de
un atributo
Si se obliga que la condición de selección adopte un valor si o si
Si se puede adoptar un valor entre conjuntos especificados
Si la condición de selección, es un operador de comparación
En todos los demás casos se utiliza una estimación aproximada
TRANSFORMACIÓN DE EXPRESIONES RELACIONALES
equivalentes: cada ejemplar legal de la base de datos, de dos expresiones generan el mismo conjunto de tuplas, pueden ser el mismo conjunto de tuplas pero en distinto orden.
Reglas de equivalencia
Las operaciones de selección conjuntivas pueden
dividirse en una secuencia de selecciones individuales.
Las operaciones de selección son conmutativas
Sólo son necesarias las últimas operaciones de una secuencia de operaciones de proyección, las demás pueden omitirse.
. Las selecciones pueden combinarse con los productos
cartesianos y con las reuniones zeta.
Las operaciones de reunión zeta son conmutativa, el orden de los atributos es indiferente
Las operaciones de reunión natural son asociativas.
Hay casos en que las reuniones zeta son asociativas.
La operación de selección se distribuye por la operación de reunión zeta bajo ciertas condiciones.
La operación proyección se distribuye por la operación de reunión zeta bajo ciertas condiciones.
Las operaciones de conjuntos unión e intersección
son conmutativas.
La unión y la intersección de conjuntos son asociativas.
La operación de selección se distribuye por las operaciones de unión, intersección y diferencia de conjuntos.
La operación de proyección se distribuye por la
operación unión.
Ordenación de las reuniones
reducir el tamaño de los resultados temporales
Aunque las expresiones sean equivalentes, los costes
de calcular cada una de ellas pueden ser diferentes
No hay que preocuparse del orden en que aparecen los atributos en las reuniones, ya que resulta sencillo cambiarlo antes de mostrar el resultado.
Enumeración de expresiones equivalentes
Los optimizadores de consultas utilizan las reglas de equivalencia para generar de manera sistemática expresiones equivalentes a la expresión de consulta dada.
si alguna subexpresión coincide con algún lado de una regla de equivalencia, el optimizador genera una nueva expresión
ELECCIÓN DE LOS PLANES DE EVALUACIÓN
se necesita un plan de evaluación para definir exactamente el algoritmo que se utilizará para cada operación y el modo en que se coordinará la ejecución de las operaciones
Interacción de las técnicas de evaluación
escoger para cada operación el algoritmo más económico para evaluarla
se debe buscar una relación de eficiencia y economizacion de los algoritmos
Optimización basada en el coste
generan planes de evaluación a partir de la consulta dada empleando las reglas de equivalencia
se puede desarrollar un algoritmo de programación dinámica para hallar los órdenes de reunión óptimos.
Los algoritmos de programación dinámica almacenan los resultados de los cálculos y los reutilizan, un procedimiento que puede reducir enormemente el tiempo de ejecución
El procedimiento almacena los planes de evaluación que calcula en el array asociado mejor plan, que está indexado por conjuntos de relaciones
El procedimiento comprueba en si el mejor plan para calcular la reunión del conjunto de relaciones se ha calculado ya si es así, devuelve el plan ya calculado. Caso contrario, el procedimiento intenta todas las maneras posibles de dividirlos en dos subconjuntos disjuntos.
El orden en que la reunión de un conjunto de relaciones genera las tuplas también es importante para hallar el mejor orden global de reunión
Optimización heurística
reducir el número de elecciones que hay que hacer de una manera basada en los costes
Hay que descomponer las selecciones conjuntivas en una secuencia de operaciones de selección sencillas.
Hay que desplazar las operaciones de selección hacia la parte inferior del árbol de consultas para conseguir su ejecución lo antes posible
Hay que determinar las operaciones de selección y de reunión que producirán las relaciones de menor tamaño
Hay que sustituir por operaciones de reunión las operaciones producto cartesiano seguidas de condiciones de selección
Hay que dividir las listas de atributos de proyección y desplazarlas hacia la parte inferior del árbol todo lo que sea posible, creando proyecciones nuevas donde sea necesario.
Hay que identificar los subárboles cuyas operaciones pueden encauzarse y ejecutarlos utilizando el encauzamiento.
Estructura de los optimizadores de consultas
El optimizador sólo toma en consideración los órdenes de reunión en que el operando de la derecha de cada reunión es una de las relaciones iniciales, se denominan órdenes de reunión en profundidad por la izquierda
El optimizador utiliza la heurística para forzar el desplazamiento de las selecciones y de las proyecciones hacia la parte inferior del árbol de consultas.
la selección heurística y la generación de planes de acceso alternativos se han adoptado en varios sistemas
La complejidad de SQL introduce un elevado grado de complejidad en los optimizadores de consultas
Optimización de las subconsultas anidadas
SQL trata conceptualmente a las subconsultas anidadas de la cláusula where como funciones que toman parámetros y devuelven un solo valor o un conjunto de valores
Conceptualmente, la subconsulta puede considerarse como una función que toma un parámetro y devuelve el conjunto de todos los impositores con el mismo nombre.
La técnica para evaluar una consulta con una subconsulta anidada se denomina evaluación correlacionada
El proceso de sustituir una consulta anidada por una consulta con una reunión se denomina descorrelación
VISTAS MATERIALIZADAS
es una vista cuyo
contenido se calcula y se almacena
constituyen datos redundantes
es más 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.
Mantenimiento de las vistas
Hay que mantenerlas actualizadas cuando se modifican los datos ( mantenimiento de la vista)
Mantenimiento incremental
de las vistas
considerar las operaciones individuales y luego se verá la manera de manejar una expresión completa
simplificar la descripción sustituye las actualizaciones a cada tupla por la eliminación de esa tupla seguida de la inserción y actualización
La operación reunión
solo hace falta añadir tuplas para actualizar la vista
las inserciones y actualizaciones se manejan de manera completamente simetrica
Las operaciones selección
y proyección
La proyección es una operación más difícil de tratar
El motivo es que la misma tupla se obtiene de dos maneras, y que la eliminación de una tupla, sólo elimina una de las formas de obtener, la otra sigue presente
Las operaciones de agregación
Las operaciones de agregación se comportan aproximadamente
como las proyecciones ( count, sum, avg, min y max)
Otras operaciones
conjuntos intersección, unión y diferencia
de conjuntos
Tratamiento de expresiones
una expresión entera se pueden obtener expresiones para el cálculo del cambio incremental en el resultado de cada subexpresión, comenzando por las de menor tamaño.
Optimización de consultas y vistas
materializadas
La optimización de consultas puede llevarse a cabo tratando las vistas materializadas igual que a las relaciones normales
Reescritura de las consultas para el empleo de vistas materializada
Sustitución del empleo de una vista materializada por la definición de la vista