1 / 51

Query Evaluation Techniques for Large Databases - Goetz Graefe

Query Evaluation Techniques for Large Databases - Goetz Graefe. Héctor Fabio Cadavid R. Giovanni Antonio Cantor M. Agenda. Introducción Arquitectura de los motores de ejecución de sentencias. Ordenamiento y Hashing Acceso a disco Agregación Operaciones de matching binarias.

laurence
Download Presentation

Query Evaluation Techniques for Large Databases - Goetz Graefe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Query Evaluation Techniques for Large Databases - Goetz Graefe Héctor Fabio Cadavid R. Giovanni Antonio Cantor M. Query evaluation techniques for large databases

  2. Agenda • Introducción • Arquitectura de los motores de ejecución de sentencias. • Ordenamiento y Hashing • Acceso a disco • Agregación • Operaciones de matching binarias Query evaluation techniques for large databases

  3. Agenda (cont.) • Dualidad de algoritmos de procesamiento de sentencias basadas en hashing y en ordenamiento Query evaluation techniques for large databases

  4. Introducción • Consultas complejas: • Requiere una operación conjunta de algoritmos de procesamiento de consultas. • Bases de datos en el entorno actual: • Grandes volúmenes de datos, gigabytes, e incluso terabytes. Query evaluation techniques for large databases

  5. Introducción • Pasos para la ejecución de sentencias Parsing Validación Optimización Ejecución Compilación del plan Query evaluation techniques for large databases

  6. Arquitectura de los motores de ejecución de sentencias. • Algoritmos de procesamiento de consultas ALGORITMO PROC. CONSULTAS OPERADOR ALGEBRÁICO ALGORITMO PROC. CONSULTAS Query evaluation techniques for large databases

  7. ALGORITMO PROC. CONSULTAS A ALGORITMO PROC. CONSULTAS B ALGORITMO PROC. CONSULTAS C MOTOR Sentencia Compleja Resultado Arquitectura de los motores de ejecución de sentencias. • Motor de ejecución de sentencias Query evaluation techniques for large databases

  8. ALGORITMO PROC. CONSULTAS B Arquitectura de los motores de ejecución de sentencias. • Motor de ejecución de sentencias ALGORITMO PROC. CONSULTAS A Algebra física ALGORITMO PROC. CONSULTAS C MOTOR Sentencia Compleja Resultado Query evaluation techniques for large databases

  9. Álgebra lógica. (p.e., álgebra relacional). Álgebra física – específico del sistema Arquitectura de los motores de ejecución de sentencias. SQL92 Oracle MySQL OraLite Query evaluation techniques for large databases

  10. Arquitectura de los motores de ejecución de sentencias. • Algebra lógica vs. algebra física • Algebra lógica no permite predecir una estrategia de ejecución. Ésta depende del álgebra física utilizada. • Por lo anterior, las funciones de costo son solo aplicables a través del algebra física. El álgebra lógica debe ser mapeada a algún tipo de álgebra física. Query evaluation techniques for large databases

  11. Arquitectura de los motores de ejecución de sentencias. • Expresiones lógicas vs. Expresiones físicas. Query evaluation techniques for large databases

  12. Arquitectura de los motores de ejecución de sentencias. • Sincronización y transferencia de datos entre operadores • Alternativas: • IPC / PIPES • Archivos temporales • Planificar entre sí los diferentes operadores en un solo proceso del sistema operativo. Query evaluation techniques for large databases

  13. -Open -Open -Next -Next -Close -Close Arquitectura de los motores de ejecución de sentencias. • Planificación de operadores encadenados. Merge Join OPERADOR B OPERADOR C Query evaluation techniques for large databases

  14. Ordenamiento y Hashing • Ordenamiento (presentación / algoritmos basados en ordenamiento). • Ordenamiento externo (#Run=Size(input)/Memoria) Input Run 1 Quicksort Run 2 Quicksort Run 3… Quicksort Run N Quicksort Query evaluation techniques for large databases

  15. Input menor < Última llave menor(a) Heap Prioridad Run 1 Ordenamiento y Hashing • Heap de prioridad • Heap: P(siguiente elemento sea mayor) -> alta Query evaluation techniques for large databases

  16. Descartado para Run 1 Run 1 *menor(a) Input menor >= Última llave Heap Prioridad Ordenamiento y Hashing • Heap de prioridad Query evaluation techniques for large databases

  17. Run 1 Input menor < Última llave Heap Prioridad Run 2 *menor(a) Ordenamiento y Hashing • Heap de prioridad • Después de recorridos todos los elementos, se inicia el siguiente Run con los marcados(*) Query evaluation techniques for large databases

  18. Ordenamiento y Hashing • Hashing: matching • Algoritmos de procesamiento de consultas basados en Hashing getRecord(key) Hash Table Datos Complejidad: O(N) Query evaluation techniques for large databases

  19. Ordenamiento y Hashing • Hashtable overflow: estrategia preventiva/correctiva Datos getRecord(key) Hash Table Hash table overflow Query evaluation techniques for large databases

  20. Ordenamiento y Hashing • Hashtable overflow: estrategia preventiva Datos Hash Table Query evaluation techniques for large databases

  21. Ordenamiento y Hashing • Estrategia correctiva: algoritmo hash híbrido. Datos Overflow Hash Table Hash Table A disco Query evaluation techniques for large databases

  22. Ordenamiento y Hashing • Estrategia correctiva: algoritmo hash híbrido. Overflow OK Hash Table Hash Table A disco A disco Query evaluation techniques for large databases

  23. Acceso a disco • Sistemas de evaluación de consultas • MB -> TB – Almacenamiento secundario • (1993) Almacenamiento óptico, archivos de cintas automatizados, servidores de almacenamiento remoto deberían contemplarse deberán considerarse para los DBMS en el futuro. Query evaluation techniques for large databases

  24. Acceso a disco • Bases de datos en memoria: • [Analyti, Pramanik, Bitton entre otros]: Bases de datos en memoria para mejorar velocidad de transacciones y procesamiento de consultas. • [Gray, Putzolo, 1987]: Tiene una relación costo/beneficio adecuado si se usa solo para el manejo de los datos accedidos más frecuentemente. Query evaluation techniques for large databases

  25. Acceso a disco • DBMS en disco: I/O -> mayor costo en la evaluación de sentencias en bases de datos enormes. • Lecturas de archivo: read-ahead scan 1 1 1 read 0 1 1 read 0 1 buffer Query evaluation techniques for large databases

  26. Acceso a disco • Unidades de I/O: páginas. • Unidades I/O muy grandes: • Fragmentación del buffer y desperdicio ancho de banda del bus de datos si solo se requieren unos pocos registros. 1 read read buffer Query evaluation techniques for large databases

  27. Acceso a disco • Para lograr equilibrio de desempeño entre búsquedas secuenciales y búsquedas de acceso aleatorio a registros. • Soportar diferentes tamaños de página (requiere manejador de buffer más complejo). • Tamaños de página de tamaño intermedio. Query evaluation techniques for large databases

  28. Acceso a disco • Acceso asociativo usando índices • Objetivo: reducir el número de accesos a disco. • Estructura mas común: Árbol B • Asociación de llaves y localizaciones Query evaluation techniques for large databases

  29. Árbol B Nodos intermedios con N hijos, de un intervalo dado. Split/Join Maximización de nodos hijo: menos balanceos, optimo para estructuras en disco (1 nodo»1 bloque de disco). Acceso a disco Query evaluation techniques for large databases

  30. Acceso a disco • Otras estrategias de índice • ISAM • Quad-Trees • R-trees • Grid files • kB-trees Todos enfocados a estructuras en disco. Query evaluation techniques for large databases

  31. Acceso a disco • Para el manejo de índices, los DBMS modernos no acoplan completamente la búsqueda de registros con la búsqueda en índices. Query evaluation techniques for large databases

  32. Acceso a disco • Beneficios: • Menos I/O requerido para buscar solo elementos indexados. Salario de John Salary Index $200 112 Jhon 28 $200 112 Query evaluation techniques for large databases

  33. Acceso a disco • Optimizadores de consultas: identifican cuando una consulta se puede responder con sólo una búsqueda de índice. • Eventualmente, el optimizador puede resolver una consulta más eficientemente haciendo ‘join’ de los índices (join de RID iguales). Query evaluation techniques for large databases

  34. Salary Index $200 112 Jhon 28 $200 112 Acceso a disco • Join de índices(cuando aplica): Búsqueda sobre archivo de datos obsoleta(mucho menos eficiente). Salario, nombre de 112 Name Index Index Join Jhon 112 Query evaluation techniques for large databases

  35. Acceso a disco • Join funcional • Secuencia A: • Obtener un RID del barrido sobre el índice. • Obtener el registro • Obtener el siguiente RID • Etc… Query evaluation techniques for large databases

  36. Acceso a disco. • Secuencia A con el operador de Join Funcional: • Leer los N primeros RIDs • Cargarlos en un heap de prioridad, donde el criterio es la conveniencia de la localización del registro. • Obtener el RID del heap, obtener el registro. • Obtener otro RID del índice, agregarlo al heap. • Realizar paso 3. Query evaluation techniques for large databases

  37. Administración de buffer • I/O buffer: reducción de I/O almacenando datos en caché. • Política de reemplazo tradicional: LRU (least recently used). • No aplicable para DBMS: operaciones que recorren las páginas una única vez eliminan entradas importantes del buffer. Query evaluation techniques for large databases

  38. Administración de buffer • [Chow, DeWitt – 1985]. Algoritmo DBMIN • Crea varios buffers en cada búsqueda. • Usa una política de reemplazo de elementos de buffer apropiado para el patrón de búsqueda dado. Query evaluation techniques for large databases

  39. Funciones de Agregación • Mínimo • Máximo • Suma • Conteo • Promedio Query evaluation techniques for large databases

  40. 2 5 4 6 Tipos de Agregación • Agregación Escalar • Funciones de Agregación 5 Query evaluation techniques for large databases

  41. Las Funciones de Agregación Compara los atributos enlistados Se realiza un computo antes de que el segundo ítem de cada grupo sea eliminado. Remoción de Duplicados Compara todos los atributos Cada ítem duplicado es eliminado inmediatamente Funciones de Agregación y Remoción de Duplicados Query evaluation techniques for large databases

  42. Algoritmos de Agregación y Remoción de Duplicados Loops Anidados Basados en Ordenación Basados en Hash Query evaluation techniques for large databases

  43. Loops Anidados • Entrada Salida Jorge - Tenis Juan – Golf Maria - Golf Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  44. Loops Anidados • Entrada Salida Jorge - Tenis Juan – Golf Tenis - 1 Maria - Golf Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  45. Loops Anidados • Entrada Salida Jorge - Tenis Juan – Golf Tenis - 1 Maria - Golf Golf - 1 Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  46. Loops Anidados • Entrada Salida Jorge - Tenis Juan – Golf Tenis - 1 Maria - Golf Golf - 2 Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  47. Loops Anidados • Entrada Salida Jorge - Tenis Juan – Golf Tenis - 2 Maria - Golf Golf - 2 Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  48. Nested Loops • Entrada Salida Jorge - Tenis Juan – Golf Tenis - 2 Maria - Golf Golf - 3 Rubén - Tenis Sonia - Golf Query evaluation techniques for large databases

  49. Algoritmo de Agregación basado en Ordenamiento • Entrada Salida Jorge - Tenis Juan – Golf Juan – Golf Maria - Golf Tenis - 2 Golf - 3 Maria - Golf Sonia - Golf Rubén - Tenis Jorge - Tenis Sonia - Golf Rubén - Tenis Query evaluation techniques for large databases

  50. Desempeño de agregación basado en sort y hash Query evaluation techniques for large databases

More Related