Download presentation
Presentation is loading. Please wait.
Published byJuan Luis Gonzalo Escobar Maldonado Modified over 8 years ago
1
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres mercy.ospinat@gmail.com Prof Renny A. Hernandez renny.hernandez@ciens.ucv.ve
2
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Contenido Marzo 2012Administración de Base de Datos2 Modelo de costos – Factor de selectividad – Costo de los operadores del Algebra Relacional Select Project. Join Order Árbol de ejecución físico – Evaluar el árbol de ejecución físico. Materialización Encausamiento Concurrencia
3
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Modelo de Costos Marzo 2012Administración de Base de Datos3 Es una herramienta estadística formal para evaluar el costo de un plan físico de ejecución. Se mide en función del tiempo y puede expresarse en términos de: – Accesos a disco – Tiempo del CPU – Costo de comunicación (Sist. Dist) – Tiempo de respuesta para un plan de evaluación de una consulta.
4
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Modelo de Costo Marzo 2012Administración de Base de Datos4 ¿Cuál es el costo más importante en las bases de datos centralizadas? Acceso a disco
5
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Marzo 2012Administración de Base de Datos5 Para calcular el costo de acceso a disco necesitamos. – Tamaño a cada archivo de datos y vistas Número de registros Tamaño de los atributos y los registros Tamaño de los bloques – Factor de selectividad Número de valores distintos, mínimo y máximo de los atributos de búsqueda, – Métodos de acceso (organización del archivo) – Índices del archivo números de niveles (altura) Tipo (primario, secundario, agrupado)
6
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Cálculo del espacio en disco requerido por una relación Marzo 2012Administración de Base de Datos6 1. Registros de longitud fija y no extensible N: el número de registro del archivo A Ra: el tamaño en bytes de cada registro B: Tamaño en bytes de cada bloque Se usa para las tablas base
7
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Estimación de costos Marzo 2012Administración de Base de Datos7 2. Extensibles / Tamaño Fijo Se usa para las tablas vista o resultados intermedios
8
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Estimación de Costos Marzo 2012Administración de Base de Datos8 4. Tamaño variable se usan las mismas fórmulas pero se calcula un promedio de tamaño del registro
9
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Costo de operadores físicos Marzo 2012Administración de Base de Datos9 Selección Ordenamiento Proyección Reunión
10
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Estimación de costos en operaciones físicas: Selección Marzo 2012Administración de Base de Datos10 Operación Selección Selección sin índices Selección con índices Selección de igualdad Selección de comparación Selecciones complejas (Conjuntivas o Disyuntivas)
11
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección sin índices Marzo 2012Administración de Base de Datos11 Considere una operación selección sobre un archivo A y:
12
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección sin índices Marzo 2012Administración de Base de Datos12 Búsqueda lineal
13
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección sin índice Marzo 2012Administración de Base de Datos13 Busqueda binaria – Si el archivo se ordena según el atributo clave y la condición es una igualdad. – Si la selección no es de igualdad, o no es sobre un atributo clave (y el archivo está ordenado según éste atributo)
14
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección con índices Marzo 2012Administración de Base de Datos14 Existe un índice sobre alguno de los atributos que forman la condición en la consulta – Select * from t1 where att1= v1 and att2= v2 Asumimos que los índices son de tipo árbol B+ y la longitud del camino es siempre la altura del árbol.
15
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección de igualdad Marzo 2012Administración de Base de Datos15 Select a1, a2,.. An From t1, t2, … tm Where a3=v1 and... Índice primario – Si se usa un índice primario es porque la igualdad es sobre un atributo clave y solo existe un valor posible – Costo: Se obtiene el número de niveles de índice (h) + 1
16
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección de igualdad Marzo 2012Administración de Base de Datos16 Índice agrupado – Existen varios registros que cumplen la condición y ellos están ordenados físicamente. Índice secundario Cantidad de bloques que ocupan los registros seleccionados
17
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección de comparación Marzo 2012Administración de Base de Datos17 Índice primario o agrupado – Si la comparación es Att > v o Att ≥ v se puede obtener el primer valor de v en el archivo de datos, de allí se explora hasta el final – Si la comparación Att < v o Att ≤ v no es necesario usar el índice.
18
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selección de comparación Marzo 2012Administración de Base de Datos18 Índice primario o agrupado – Si la comparación es Att > v o Att ≥ v se puede obtener el primer valor de v en el archivo de datos, de allí se explora hasta el final – Si la comparación Att < v o Att ≤ v no es necesario usar el índice. Índice secundario – Sólo es necesario hallar el primer apuntador a v y recorrer la lista formada por las hojas para obtener los apuntadores a los diferentes bloques del archivo de datos.
19
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selecciones complejas Marzo 2012Administración de Base de Datos19 Conjuntivas (c1 and c2) -Índices Simples (índices diferentes por cada atributo) -Se verifica si hay un índice sobre alguno de los atributos, se busca sobre éste y se verifica si cumple las demás condiciones -El más económico es el que tiene el fs más bajo -Si hay un índice por cada atributo, se utilizan los distintos índices, se recuperan los elementos y luego se interceptan los tres conjuntos obtenidos.
20
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Selecciones Complejas Marzo 2012Administración de Base de Datos20 Conjuntivas (Cont) Índices Compuestos Sólo puede utilizarse si cada uno de los atributos están en la condición de selección El tipo de índice determina el uso de algoritmos de selección simples Disyuntiva (c1 or c2) – Se realiza una búsqueda y se realiza la unión de éstas. – El hecho de que un sólo atributo no tenga índice implica una búsqueda lineal de datos.
21
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Proyección Marzo 2012Administración de Base de Datos21 Con duplicados For each tupla t in B Guardar en B’ End Resultado tabla o relación con registros duplicados Costo = TB B (recorrer la tabla B) Costo de almacenamiento – TB B’ (guardar la tabla proyectada) B B’
22
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Proyección Marzo 2012Administración de Base de Datos22 Sin duplicados Basado en ordenamiento For each tupla t in B Guardar en B’ End Ordenar B’ en base a los atributos de proyección For each tupla t in B’ Guardar t en B’’ sii no existe t en B’’ End Resultado tabla o relación donde los duplicados son eliminados
23
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Proyección Marzo 2012Administración de Base de Datos23 Costo de proyección Costo de almacenamiento Recorrer B Generar B’ Ordenar B’ Tabla proyectada sin duplicados
24
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Proyección Marzo 2012Administración de Base de Datos24 Basado en HASH Se crea B’ For each tupla tj in B’ Aplicar f(tj) #se contruye una tabla hash en mp si tupla tj en f(ti) / ti = tj Descartar ti sino Guardar ti en f(ti) fsi Retornar tuplas en tabla hash end
25
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Proyección Marzo 2012Administración de Base de Datos25 Basado en HASH (costo) – Suponiendo que – se puede almacenar en la tabla hash Sino Aunque este costo puede ser menor que el de ordenamiento, requiere memoria principal + Costo de almacenar B’’
26
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Operación Join Marzo 2012Administración de Base de Datos26 El operador Join se puede evaluar de varias maneras distintas – Nested loop join – Block Nested Loop Join – Merge sort join – Index Join – Hash Join
27
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Nested Loop Join Marzo 2012Administración de Base de Datos27 For each tupla tA in A For each tupla tB in B If satisfy (tA, tB, Cond) Return (tA. tB) End Costo = TB A + RA*TB B RA = cantidad de registro de A
28
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Block Nested Loop Join Marzo 2012Administración de Base de Datos28 Este algorito se puede mejorar si se aprovechan los bloques de memoria disponibles Si se carga A por bloques el costo seria Costo = TB A + TB A *TB B Si se tienen T bloques disponibles se dejan dos para entrada/salida A B
29
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Sort-Merge Join Marzo 2012Administración de Base de Datos29 Si ambas tablas están ordenadas sobre los atributos del Join, el costo es el menor Costo = TB A + TB B Si no hay que agregar el costo de ordenación Costo = TB A Log 2 (TB A )+ TB B Log 2 (TB B ) +TB A +TB B A B
30
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Index Join Marzo 2012Administración de Base de Datos30 Se usa si la tabla de la derecha tiene un índice sobre el atributo del Join, el costo es el de leer A y buscar cada registro de A por el índice Costo = TB(A) + CostoBuscar*Ra El costo de buscar depende del indice (ver operador select) A B
31
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Hash Join Marzo 2012Administración de Base de Datos31 Se dividen las tuplas de cada relación utilizando una función hash tal que:
32
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Hash Join Marzo 2012Administración de Base de Datos32 h es una función que asigna a los atributos de join los valores {0,1,..,n-1} H a0.. H a(n-1) denota las particiones de A inicialmente vacías. Se colocan las tuplas en H ai con i = h(t a [atributos join]) H b0.. H b(n-1) denota las particiones de B inicialmente vacías. Se colocan las tuplas en H bi con i = h(t b [atributos join]) Al aplicar la misma función para ambos particionamientos, cada tupla de A y B que tengan resultados iguales de la función de asociación, estarán en la misma partición
33
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Hash Join Marzo 2012Administración de Base de Datos33
34
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Video Join Marzo 2012Administración de Base de Datos34 Videos – Video 1 Video 1 – Video 2 Video 2
35
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Calcular el costo de un árbol de ejecución Marzo 2012Administración de Base de Datos35 Una vez que el árbol este optimizado – Se cambian los operadores lógicos por físicos p.e join por index join – Si hay mas de un operador posible se debe verificar el menos costoso – Se calculan los costos de las operaciones por nodo, y el costo de almacenar resultados intermedios – Se suman los costos de todos los nodos
36
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Consideraciones para transformar el árbol lógico en físico Marzo 2012Administración de Base de Datos36 Calcular el tamaño en bloques de las tablas base Por cada operación – Calcular el factor de selectividad de los select y los joins – Calcular el tamaño de los resultados intermedios – Los proyect internos simpre se harán con duplicados. – Solo se usan índices si el tamaño de la tabla lo amerita EI
37
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Consideraciones para transformar el árbol lógico en físico Marzo 2012Administración de Base de Datos37 – Solo se usan índices si el tamaño de la tabla lo amerita – Evaluar los join con los operadores físicos que apliquen y seleccionar el menos costoso – Sumar los costos totales EI
38
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejercicio Marzo 2012Administración de Base de Datos38 Jugador (DI, Nombre, Apellidos, FechaNac, Direccion) DI: 9 bytes Nombre: 40 bytes Apellidos: 40 bytes FechaNac: 8 bytes Direccion: 50 bytes Num registros: 250.000 Equipo( CodEq, NombreEq, FechaFund, Ciudad, Liga, Estadio) CodEq: 4 bytes NombreEq: 40 bytes FechaFund: 8 bytes Liga: 2 bytes (Nacional =0, Americana=1) Estadio: 50 bytes Num registros: 30 Juegos(CodEq1, CodEq2, Temporada, Fecha, Resultado, CodEquipoGana) CodEq1: 4 bytes CodEq2: 4 bytes Temporada: 4 bytes, min : 1902, máximo 2011, valores diferentes, 110 Fecha: 8 bytes (162 valores distintos) Resultado: 8 bytes CodEquipoGana: 4 bytes (INDICE) Num registros: 18.000 Juega (DIJugador, CodEq, FechaIni, FechaFin, Posicion) DIJugador: 9 bytes CodEq: 4 bytes FechaIni: 8 bytes (un promedio de 20 jug por año) FechaFin: 10 bytes Posición: 20 bytes (9 valores distintos) Num registros: 875.000
39
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Marzo 2012Administración de Base de Datos39 Consulta: Nombre, apellido y equipo de los jugadores que han participado en la temporada 2009 en juegos ganados, y que han jugado en primera base. – Dé el árbol canónico para q. – Dé el árbol optimizado heurísticamente.
40
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejercicio Marzo 2012Administración de Base de Datos40 Suponga que el SMBD se caracteriza por – Disponer de 20 bloques de memoria principal para las operaciones AR – Cada bloque ocupa 1024 bytes – Disponer de los operadores físicos vistos en clase – Materializar los resultados intermedios. Asuma registros fijos extensibles para las tablas intermedias y no extensibles para las relaciones base – Índices primarios para las claves primarias, todos tienen 4 de altura
41
El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Ejemplo de plan de ejecución Caso Oracle Marzo 2012Administración de Base de Datos41 SELECT e.employee_id, e.last_name, e.salary, d.department_name, l.city FROM employees e, departments d, locations l WHERE e.department_id = d.department_id AND d.location_id = l.location_id AND l.city = 'Oxford' AND e.salary > 10500 AND e.last_name LIKE '%e%';
42
Ejemplo de plan de ejecución Caso Oracle Marzo 2012Administración de Base de Datos42 Búsqueda usando índice
43
Marzo 2012Administración de Base de Datos43 Ordenamiento en memoria
44
Marzo 2012Administración de Base de Datos44 Búsqueda lineal
45
Marzo 2012Administración de Base de Datos45 Sort merge join
46
Marzo 2012Administración de Base de Datos46 Block nested loop join
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.