Académique Documents
Professionnel Documents
Culture Documents
CAPITULO VII
PROCESAMIENTO DE CONSULTAS
Contenido
1. Vista General 2. Medida del costo de la consulta 3. Operacin de seleccin 4. Ordenamiento 5. Operacin JOIN
Vista General
Pasos bsicos en el procesamiento de consultas:
En este captulo estudiaremos: Como medir costos de consultas Algoritmos para evaluacin de operaciones de algebra relacional Como combinar algoritmos para operaciones individuales en orden para evaluar una expresin completa
Comnmente el acceso al disco es el costo predominante, y es tambin relativamente fcil de estimar. Medidas para tomar en cuenta: Numero de bsquedas X costo-bsqueda-promedio Numero de bloques ledos X costo-lectura-bloque-promedio Numero de bloques escritos X costo-escritura-bloques Costo para escribir un bloque es mas grande que el costo de leer un bloque Datos son ledos despus que son escritos para asegurar que la escritura ha sido satisfactoria
Informacin estadstica
El SGBD guarda informacin estadstica de las relaciones en el Catlogo, la cual es utilizada por el optimizador para evaluar el costo de los planes. La informacin que se debe guardar sobre las relaciones son:
Numero de filas de la tabla r: nr Numero de bloques que contienen filas de la tabla r: br Tamao en bytes de una fila de r: tr Numero de filas de r que caben en un bloque: fr Numero de valores distintos del atributo A de la tabla r: V(A,r) Numero medio de filas de r que satisfacen una condicin de igualdad sobre el atributo A de la tabla r: CS(A,r) = nr/V(A,r)
Adems de la informacin de las tablas, tambin utilizan informacin acerca de los ndices:
Orden o grado de los nodos internos del ndice i (para ndices con estructuras de rbol B/B+): gi Numero de bloques en el nivel hoja del ndice i: MBi Altura del ndice para el atributo A de r: AAi =[log gr /2(V(A,R))]
Operacin de Seleccin
File scan (explorador de bsqueda que localiza y retorna registros que cumplen una condicin de seleccin de archivos):. Algoritmo A1 (bsqueda lineal): cada bloque de exploracin de archivos prueba todos los registros para ver si cumplen con la condicin de seleccin. Costo estimado=br bloques transferidos
br : numero de bloques conteniendo registros de la relacin r
Si la seleccin es sobre un atributo clave, puede terminar la bsqueda del registro sin necesidad de explorar los otros registros.
Costo = (br/2) bloques transferidos
Ordenacin
Ordenacin es importante en BD: Se solicitan consultas ordenadas Hace que algunas operaciones (como el join) sean mas eficientes La ordenacin se puede lograr de dos maneras: Construyendo un ndice por la clave de ordenacin y utilizando luego ese ndice. Este proceso ordena la relacin slo lgicamente, no en forma fsica, lo que podra significar acceder al disco por cada fila. Ordenando los datos en memoria principal. El problema es cuando el conjunto de datos no cabe en la memoria principal, por lo cual se debe realizar una ordenacin externa: Primero se crean varias secuencias ordenadas de tamao igual al tamao de la memoria principal (M), grabando el resultado en un archivo temporal. Las secuencias ordenadas se usan como entrada de un proceso de mezcla (igual a la fase de mezcla del Merge Sort), en la cual se mezclan hasta M-1 secuencias ordenadas por vez. Durante la mezcla las secuencias ordenadas se leen por pedazos de tamao igual a un bloque de disco (o pgina de memoria) El proceso termina cuando se obtiene una nica secuencia ordenada. El costo de una ordenacin externa esta dado por: br*(2*[log M-1(br/M)]+1)
Ordenacin
Que se unen a todas las filas en r que cumplen con A, entonces se estima que hay tantas filas como: (nr*ns)/V(A,s)