IBD Clase 16
Optimización de consultas Componentes del “costo” de ejecución de una consulta: Costo de acceso a almacenamiento secundario buscar, leer y escribir bloques de datos que residen en disco. Costo de almacenamiento costo de almacenar archivos intermedio que genera una estrategia de ejecución Costo de cómputo Costo de realizar operaciones Costo de comunicación Costo de enviar la consulta y los resultados (si es un Sistema Distribuido) IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Interpretación de consultas Dada una consulta hay varios métodos para llegar a la respuesta. Fórmula de cálculo sistema Usuario Consulta consulta depurada Más eficiente IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Consulta forma interna proceso de optimización parser más eficiente elección de índices # de acceso a disco orden en el uso de tuplas Parser equivale a un compilador IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Optimización Lógica Expresiones equivalentes: Algebra relacional: procedural, existe una secuencia de resolución se puede encontrar una expresión más eficiente que otra. IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Operaciones Selección: hacerlas lo antes posible Cambiar p1^p2(e) p1(p2(e)) (descomponer la condición) Ejemplo Proyección Resolver la proyección lo antes posible Producto natural (r1 |x| r2 |x| r3) = r1 |x| (r2 |x| r3) sexo=‘M’ and edad>=18( PERSONA ) sexo=‘M’ (edad>=18 (PERSONA)) PERSONAS=(DNI,nombre, dir) SALARIOS=(DNI,monto) nombre,monto (PERSONAS |x| SALARIOS) -> nombre,monto ((nombre,DNI (PERSONAS)) |x| SALARIOS) Selección Proyección (selección (r1|x|r2|x|r3) Proyección (selección(r1) |x| selección (r2) |x| r3) Proyección suc, activo( suc ( localidad (cliente) |x| deposito ) |x| sucursal ) IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Otras operaciones (equivalencias) p(r1 r2) = p(r1) p(r2) p(r1 - r2) = p(r1) - p(r2) (r1 r2) r3 = r1 (r2 r3) r1 |x| r2 = r2 |x| r1 IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Estimación del costo de las consultas Elección de estrategia estadísticas # tuplas en la relación (nr) Tamaño en bytes de la tupla (sr) # valores distintos en la relacion r para un atributo V(a,r) Costos de las consultas Producto cartesiano: r x t # tuplas nr * nt # bytes en cada tupla sr + st IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Selección: p (r) # tuplas nr se supone distribución uniforme V(A,r) # bytes de la tupla sr IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Optimización Física -> depende del DBMS Generar “buenos” índices Costo de acceso por índices Índice más rápido, existe ordenamiento Costo adicional acceso al índice Cálculo de tiempo Depende del la organización y características del índice. IBD - CLASE 16 UNLP - Facultad de Informática
Optimización de consultas Generar “buenos” clusters (criterios para agrupar información, para acceder menos al disco) de información -> se puede “clusterizar” por tablas, atributos o tuplas relacionadas Procesadores paralelos Redes: separar el trabajo entre distintas computadoras IBD - CLASE 16 UNLP - Facultad de Informática