Bases de Datos 2. Teórico

Documentos relacionados
Optimización. Bibliografía: Fundamentos de bases de datos Korth, Silberschatz

CC42A: Bases de Datos Auxiliar: Optimizacion Consultas SQL

Optimización de Consultas

Procesamiento y Optimización de Consultas

12. Procesamiento y Optimización de Consultas

8. Procesamiento y optimización de consultas

Bases de datos 1. Teórico: Algebra Relacional

Algebra Relacional. Bases de Datos 2 - Tecnologo de Informatica. BD2 - Algebra Relacoinal

Unidad 3. Álgebra Relacional y Cálculo Relacional

Técnico en Sistemas de Almacenamiento

Algebra Relacional. Gestión y Modelación de Datos

Apunte de Procesamiento y Optimización de Consultas

Bases de Datos 2. Teórico

TEMA: CONSULTAS (ALGEBRA RELACIONAL Y SQL)

AR - Marco General. Álgebra Relacional AR - SELECT. AR - SELECT - Propiedades. 19/Agosto/2016

FUNDAMENTOS DE BASES DE DATOS. Examen Diciembre 2003

OPTIMIZACIÓN DE CÓDIGO

Conceptos básicos de álgebra relacional

12/08/2017 AVL. Especificación sobre árboles AVL. AVL: rotaciones

Son una clase particular de los algoritmos evolutivos.

Procesamiento de Consultas. Carlos A. Olarte BDII

Algoritmos genéticos

TEMA 6.- LENGUAJES DE CONSULTA FORMALES.

Segundo Parcial de Fundamentos de Bases de Datos. Noviembre 2016

Bases de Datos Distribuidas -Antecedentes

Procesamiento y Optimización de Consultas

Tema 5 Algebra Relacional

IN34A - Optimización

Análisis Post Optimal y Algoritmo de Ramificación y Acotamiento

TRABAJO CON DOCUMENTOS LARGOS

Estructuras en LabVIEW.

Sumador Ripple-Carry

Guía del Curso Curso de Bases de Datos Relacionales

Algebra Relacional Algebra Relacional

Diseño de bases de datos. Informática Aplicada Grado en GAP Fac. de Admón. y Dir. de Empresas Univ. Politécnica de Valencia

Capítulo 1: Modelo conceptual

Contraloría General de la República

Unidad II: Análisis semántico

El nivel Interno. Índice Tema 3

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Algebra Relacional y SQL

EL EXPLORADOR DE WINDOWS II

BASES DE DATOS curso 2012/2013

TEMA 4.6: Procesamiento y optimización de consultas

EXAMEN DE ESTRUCTURAS DE LA INFORMACIÓN (Junio 2010)

Álgebra relacional. Álgebra Relacional. Franco Guidi Polanco. Semántica de los Operadores del Álgebra Relacional: Unión. Propiedad de cierre

Métodos de Inteligencia Artificial

Arquitectura de Manejadores de Base de Datos

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Esquema de Dividir y Vencer

Análisis semántico Tabla de símbolos, chequeo de tipos y representaciones internas

Iniciar una combinación de correspondencia

Oracle Database 11g: Taller de Ajustes (Español)

OPTIMIZACION DE CONSULTAS A BASES DE DATOS RELACIONALES

GESTION DE LA MEMORIA

Procesadores de lenguaje Tema 7 Generación de código intermedio

5.3 CREAR FORMULARIOS

WINDOWS XP. Operaciones con ficheros

Buscar en la Ayuda. Más en Office.com: Descargas Plantillas

Insertar Datos en Tablas

MICROSOFT EXCEL 2007 NIVEL AVANZADO. Contenido

Segundo Parcial de Fundamentos de Base de Datos

Sistemas de Datos. Rendimiento de la Base de datos. Procesamiento de consultas y administración del rendimiento

Bases de Datos: Bases de Datos Distribuidas. Departamento de O.E.I. - U.P.M.

SOLUCIONES. DURACIÓN: Dispone de 120 minutos para realizar el examen.

Entorno de Excel - Contexto de Trabajo y navegación

Métodos de ordenamiento y búsqueda en vectores

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

En general, se considera válido un razonamiento cuando sus premisas ofrecen soporte suficiente a su conclusión.

CURSO BASES DE DATOS DE PSICOLOGÍA PSYKE BIBLIOTECA DE PSICOLOGÍA CURSO

Estructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco).

DISEÑO WEB AVANZADO CON HTML5 Y CSS3 MODALIDAD TELEFORMACIÓN HORAS: 40

Controladores Lógicos Programables

Base de Datos Distribuidas

Generación de Código Intermedio

Búsqueda Heurística (1ª parte)

Jerarquía de Almacenamiento

Transcripción:

Bases de Datos 2 Teórico

Cómo se resuelven las consultas? Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Estrategias usuales de los optimizadores Proceso detallado de Optimización. Optimización Heurística Basada en equivalencia de las expresión del algebra y ciertas estrategias básicas para limitar el tamaño de los resultados Optimización por Costos Basada en estimaciones y datos del catalogo que permiten seleccionar un mejor plan de acceso.

Proceso de Optimización Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Resumen del Proceso de Optimización Generación del Algebra (Árbol Canónico) Generación de planes lógicos (Optimización Heurística) Implica la aplicación de determinadas estrategias (heurísticas) y consultas al catalogo para tamaños de las relaciones para transformar el árbol original. Generación de planes físicos (Optimización por Costos) Implica asociar a cada operación de los planes lógicos generados una o mas implementaciones. Que implementación depende de las estructuras de datos disponibles. Selección del Plan final (Optimización por Costos) Implica la evaluación de los planes físicos generados en base a las cantidades de operaciones de I/O que realiza cada algoritmo

Optimización por Heurísticas Cambiar la consulta original por otra equivalente de forma de minimizar los resultados intermedios. Pueden existir varias alternativas. La idea básica es aplicar primero las operaciones que reducen el tamaño de los resultados intermedios Aplicar lo antes posible las operaciones de selección y proyección Las operaciones de selección y join que son más restrictivas aplicarlas antes que las demás

Reglas de equivalencia de expresiones σ p1^p2 (R) = σ p1 (σ p2 (R)) σ p1 (σ p2 (R)) = σ p2 (σ p1 (R)) π an (π ak...an (R))) = π an (R) π a1..an (σ p(r))) = σ p (π a1..an (R)) [si p solo contiene a1..an] σ p (R X E) = R X p E R X p E = E X p R (R X p E) X p S = R X p (E X p S) σ q1 (R X E)= (σ q1 (R))X E) [si q1 solo contiene atributos de R] π anuak (R X E) = π an (R)X π ak (E) [si an es de R y ak es de E]

Reglas de equivalencia de expresiones R U E = E U R R E = E R R U (E U D) = (R U E) U D R (E D) = (R E) D σ c(r U E) = σ c(r) U σ c(e) σ c(r E) = σ c(r) σ c(e) σ c(r - E) = σ c(r) - σ c(e) π an (R U E) = π an (R) U π an (E)

Heurísticas Reglas para reducir los tamaños intermedios. Cambiar las selecciones conjuntivas por una cascada de selecciones simples. Mover las selecciones lo más abajo que se pueda en el árbol. Reacomodar las hojas del árbol de modo que las selecciones más restrictivas son ejecutadas antes, evitando productos cartesianos. Cambiar secuencias de selecciones y productos por join s. Mover las proyecciones lo más abajo posible en el árbol, agregando las proyecciones que sean necesarias.

Ejemplo de Optimización A partir del árbol canónico se generan planes lógicos. Se usan heurísticas y se agregan datos de tamaño.

Ejemplo de optimización heurística Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Ejemplo Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Ejemplo

Ejemplo

Ejemplo

Optimización por Costos Plan Físico Le asocia a cada operador del algebra que aparece en un plan lógico, una implementación. Como se pueden considerar diferentes implementaciones para cada operador, entonces un mismo plan lógico puede originar diferentes planes físicos. Es necesario estimar el costo (cantidad de operaciones de I/O) de los diferentes planes que se generen y elegir el de costo mínimo. Para evaluar el costo, es necesario considerar ciertos parámetros que tienen influencia en el calculo de la cantidad de operaciones de I/O.

Parámetros para la Estimación de Costos y Tamaños Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Parámetros para la Estimación de Costos y Tamaños (2)

Implementaciones de los operadores A cada operador de un plan lógico se le asigna una implementación. Luego hay que estimar el costo de todo el plan basándose en los costos de cada algoritmo. Es importante la estrategia de implementación: Pipelined: hay operadores que se ejecutan simultáneamente y pueden pasarse los resultados a medida que se generan. No necesita grabar los resultado intermedios. No Pipelined: los operadores se ejecutan secuencialmente y es necesario grabar resultados intermedios. Asumimos: Selección y Join (No Pipelined): Se debe considerar el costo de grabar el resultado intermedio. Proyección (Pipelined): no hay costo intermedio

Implementación de los operadores: Estimaciones de Costos En el costo consideramos solo los acceso a disco: de lectura. de grabación. Siempre se realizan las operaciones de a bloque (pagina) que pueden contener varios registros de índice o datos. Los costos de lectura dependen de la organización de los datos El costo de grabación siempre es el costo de grabar todo el resultado(r): nr/bfr donde bfr = (cant. bytes bloque) / (cant. bytes tupla) Al ver los algoritmos consideramos las lecturas, pero en el costo debemos agregar la grabación.

Implementación de la selección Búsqueda lineal. Restricciones de uso: ninguna. Descripción: leer cada registro y si cumple la condición se pone en el resultado. Costos de lectura: Peor caso: br (cantidad de bloques de la relación R) Promedio: br/2 Búsqueda Binaria. Restricciones de uso: registros ordenados. Descripción: leer el bloque del medio y en función de la condición leer el del medio de la primera o segunda mitad y así hasta encontrarlo o no tener mas bloques para leer. Costos de lectura: log2br + s/bfr -1

Implementación de la selección con Índices Primario o Clúster: Restricciones de uso: registros ordenados. Costos de lectura: Hash: x + s/bfr (x es la cantidad de niveles del índice) Si el índice es primario x+1 (solo 1 bloque tiene el valor buscado) Restricciones de uso: solo para condiciones por igualdad. Costos de lectura: 1 o 2 dependiendo del tipo de hash Secundario con B+: Restricciones de uso: ninguna Costos de lectura: x + s (peor caso, asumiendo que cada registro esta en un bloque distinto)

Implementación del Join ( R X A=BS) Loop anidado por registros Restricciones de uso: ninguna Descripción: para cada registro de R acceder a todos los bloques de S y combinar ese registro de R con todos los de S. Costo de lectura: br + nr*bs Loop anidado por bloques Restricciones de uso: ninguna Descripción: para cada bloque de R combinar todos los registros de ese bloque con todos los bloques de S. Costos de lectura: br + br/(m-2) *bs

Implementación del Join ( R X A=BS) Sort-Merge Join Restricciones de uso: las dos tablas deben tener los registros ordenados. Si no es así hay que agregar los costos de ordenación. Descripción: recorrer R y S en paralelo combinando los registros. Costo de lectura: br + bs Costo de ordenación: 2*b*(1+log2b) Índex Join (Single Loop) Restricciones de uso: existencia de un índice para S Descripción: recorrer R y acceder por el índice a S. Costo de lectura: br+(nr*z) donde Z depende del tipo de índice. secundario: Z=x + ss clúster: Z=x + ss/bfs primario: Z=x+1 hash=h

Implementaciones de los Operadores Haga clic para modificar el estilo de texto del patrón Segundo nivel Tercer nivel Cuarto nivel Quinto nivel

Implementaciones de los Operadores

Ejemplo de optimización por costos