Apuntes de CI-5313 Base de Datos III (USB-VE)/Optimización de consultas
Optimización de Consultas basadas en Costos
editar
Estimación del tamaño de T'
editar
Asumiendo:
- Los valores de los atributos en las condiciones en cond se distribuyen uniformemente.
- Las condiciones en cond son independientes.
Estimación del tamaño Join's
editarA cond B = | A | * | B | * FS(c)
Proyección (Estimación del tamaño del proyecto)
editar
¿Cuantas materias puedo cursar un estudiante en un trimestre? Eso lo necesito para predecir el tamaño de la proyección. El manejador no elimina duplicados.
Factores de Reducción de la Proyección sin considerar la eliminación de duplicados (FR).
Tamaño -----> numAtributos(todos)
X --------------> numAtributos
Estimar el costo de un plan físico
editar→ olvidando las proyecciones y selecciones. No es posible realizar una exploración exhaustiva del espacio.
Problema: Identifica un plan de ejecución dada una consulta q y el conjunto de operadores físicos.
Queremos identificar un plan de ejecución para q, tal que el costo(q) sea el menor posible.
- Solución "buena": es una solución que se aleja del peor caso que es la solución del árbol canónico.
- Solucion "ingenua": (Algoritmo greedy) \n Construir un plan de ejecución por etapas siguiendo una estrategia "Greedy"
Entrada: ConsultaParcial = la tabla del conjunto de relaciones con las proyecciones y relaciones que aparecen en la consulta y cuyo tamaño de resultado sea el más pequeño.
SELECT attList FROM T1, ... , Tn WHERE cond
Mientras existan tablas en ConjuntoRelaciones asignar a ConsultaParcial la consulta formada por σc(ConsultaParcial Ti) donde Ti ConjuntoRelaciones
es la solución con menor tamaño estimado
Costo de la solución ingenua: O(n)
Puede ser muy malo en función de la salida pero bueno en función del costo.