abd procesamiento consultas

76
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres [email protected] Prof Renny A. Hernandez [email protected]

Upload: escuela-de-computacion-ucv

Post on 30-Jun-2015

1.670 views

Category:

Education


2 download

DESCRIPTION

Clases de procesamiento de consultas de Administracion de Base de datos UCV

TRANSCRIPT

Page 1: Abd procesamiento consultas

Administración de Base de Datos

Procesamiento y Optimización de Consultas

Prof Mercy Ospina Torres [email protected] Renny A. Hernandez

[email protected]

Page 2: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 2

El SMBD

Manejo de Memoria

Restauración

Contenido

Marzo 2012

• Cómo se procesa una consulta• Traducir una consulta de SQL a AR

– Repaso Algebra Relacional

• Árbol de ejecución– Árbol de ejecución lógico– Árbol de ejecución lineal izquierdo– Árbol canónico– Axiomas del Algebra relacional

• Técnicas para optimizar consultas– Basada en heurísticas– Basada en costos.

Concurrencia

Page 3: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 3

El SMBD

Manejo de Memoria

Restauración

Contenido

Marzo 2012

• 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

Page 4: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 4

El SMBD

Manejo de Memoria

Restauración

Cómo procesar una consulta

Marzo 2012

SELECT Cuenta, Saldo FROM CuentaWHERE Saldo >40.000

Procesamiento de consulta

Consultas

Page 5: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 5

El SMBD

Manejo de Memoria

Restauración

Cómo procesar una consulta

Marzo 2012

Consultas

Consulta de alto nivel

Analizador y

traductor

Expresión en Algebra Relacional

Resultado de la

consulta

Diccionario de datosOptimi-zador

Motor de evaluación

Plan de ejecución

Estadísticas de los datos

Select * From R1 Where Cond

Silberschatz, Korth, & Sudarshan, 2006

ρCond (R1)

Búsqueda binaria

Base de datos

A1 A2 A3

xx yy zz

xy yy xz

Page 6: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 6

El SMBD

Manejo de Memoria

Restauración

Análisis

Marzo 2012

• Análisis léxico: Identifica los elementos del lenguaje como por ejemplo, las palabras reservadas de SQL, si están bien formados los nombres de los atributos y relaciones en el texto de la consulta.

• Análisis sintáctico: Comprueba la sintaxis de la consulta de acuerdo a las reglas sintácticas del lenguaje de consulta.

• Validación: Comprueba que los nombres de las relaciones, atributos sean válidos semánticamente dentro del esquema de la base de datos sobre la cual se realiza la consulta y si los tipos de datos se están usando correctamente.

Consultas

Consulta de alto nivel

Analizador y

traductor

Diccionario de datos

Page 7: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 7

El SMBD

Manejo de Memoria

Restauración

Procesamiento de consulta

Marzo 2012

• Traductor: Crea una representación interna de la consulta, mediante una estructura de árbol llamado árbol de consulta, el cual está basado en el álgebra relacional extendido

Consultas

Consulta de alto nivel

Analizador y

traductor

Expresión en Algebra Relacional

Diccionario de datos

Page 8: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 8

El SMBD

Manejo de Memoria

Restauración

Procesamiento de consulta

Marzo 2012

• Optimización: desarrolla una estrategia de ejecución para obtener el resultado de la consulta, evaluando cientos de estrategias distintas basadas en el álgebra relacional, y sus operadores físicos, escogiendo alguna de las estrategias menos costosa (plan de ejecución)

• Motor de ejecución: recibe el plan de evaluación, lo ejecuta y devuelve la respuesta de la consulta.

Consultas

Expresión en Algebra Relacional

Optimi-zador

Plan de ejecución

Estadísticas de los datos

Resultado de la

consulta

Motor de evaluación

Base de datos

Page 9: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 9

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

Select <lista de atributos>

From <lista de tablas>

Where <condiciones>

Operadores del Algebra Relacional

Consultas

Lenguaje de consulta de alto nivel

Lenguaje de consulta de bajo nivel

• Proyección• Selección• Ordenación

• Unión• Intersección• Producto cartesiano• Reunión Natural• Resta• División

Unarios

Binarios

Page 10: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 10

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

• PROYECCION– Define una vista que contiene un subconjunto vertical de R,

extrayendo los valores de los atributos especificados y eliminando los duplicados.

– Ejm:

Select <lista de atributos>

From <lista de tablas>

Where <condiciones>Consultas

CI Nombre Sueldo

123 Andrea Rojas 1500

234 Humberto Perez

2400

254 Camilo Diaz 1600

)(1 , EmpleadoT SueldoCI

Page 11: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 11

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

• SELECCIÓN– Define una vista que contiene todas las tuplas de R que

satisfacen la condición especificada.– Ejm:

Select <lista de atributos>

From <lista de tablas>

Where <condiciones>

Consultas

CI Nombre Sueldo

123 Andrea Rojas 1500

234 Humberto Perez

2400

254 Camilo Diaz 1600

)(1 1500 EmpleadoT Sueldo

Page 12: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 12

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

• PRODUCTO CARTESIANO– Define una relación que es la concatenación de cada tupla

de la relación R con cada tupla de la relación S.– R X S

Select <lista de atributos>

From <lista de tablas>

Where <condiciones>

Consultas

CI CodB

123 1

234 1

254 2

CodB Desc

1 Malta

2 7 up

R.CI R.CodB S.CodB Desc

123 1 1 Malta

234 1 1 Malta

254 2 1 Malta

123 1 2 7 up

234 1 2 7 up

254 2 2 7 up

Page 13: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 13

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

• REUNION NATURAL (JOIN)– Es una combinación entre dos relaciones donde se verifica

la condición de igualdad sobre los atributos comunes entre ambas relaciones. Del resultado se elimina una de las dos apariciones de cada atributo

Select <lista de atributos>

From <lista de tablas>

Where <condiciones> andT1.a1=t2.a1 and ….

Consultas

CI CodB

123 1

234 1

254 2

CodB Desc

1 Malta

2 7 upR.CI R.CodB S.CodB Desc

123 1 1 Malta

234 1 1 Malta

254 2 1 Malta

123 1 2 7 up

234 1 2 7 up

254 2 2 7 up

Page 14: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 14

El SMBD

Manejo de Memoria

Restauración

Algebra Relacional

Marzo 2012

• REUNION NATURAL (JOIN)– Es una combinación entre dos relaciones donde se verifica

la condición de igualdad sobre los atributos comunes entre ambas relaciones. Del resultado se elimina una de las dos apariciones de cada atributo

Select <lista de atributos>

From <lista de tablas>

Where <condiciones> andT1.a1=t2.a1 and ….

Consultas

CI CodB

123 1

234 1

254 2

CodB Desc

1 Malta

2 7 up

CI CodB Desc

123 1 Malta

234 1 Malta

254 2 7 up

Page 15: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 15

El SMBD

Manejo de Memoria

Restauración

Árbol de ejecución

Marzo 2012

• Representa una consulta en algebra relacional

• Es un árbol de orden 2– Cada nodo interno representa una tabla vista o

resultado intermedio producido por una operación

– Cada hoja representa una tabla base

P1 y P2 sub arboles

Op operador AR

Consultas

Case Base

T

Case Inductivo

Op

P1 P2

Op

P1

- ,X ,, ,

O

Page 16: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 16

El SMBD

Manejo de Memoria

Restauración

Árbol de ejecución

Marzo 2012

• EjemploΠ Apellido1, Nombre, Sueldo (σ Sueldo > c (Empleado

Departamento))

Consultas

EmpleadoDepartamento

Π Apellido1, Nombre,

Sueldo

σ Sueldo > c

T1 <-(Empleado Departamento)

Tr <- Π Apellido1, Nombre, Sueldo (T2)

T2 <- σ Sueldo > c (T1)

Page 17: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Árbol lineal izquierdo

Marzo 2012

• Es un árbol de ejecución donde en cada nodo binario el hijo derecho es una tabla

• Arbol canónico: Es un árbol lineal izquierdo donde cada nodo binario corresponde a un producto cartesiano, la selección es sobre toda la condición y la proyección sobre todos los atributos

Nota: es el mas rápido deconstruir pero el más costoso

Consultas

SELECT <Lista Atributos>FROM T1, T2, … TnWHERE <Condición>

Page 18: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Árbol lineal izquierdo

Marzo 2012

Ejercicios

Construya el árbol canónico de las sig. consultas

SELECT CI, Nombre, CodMateriaFROM Estudiante E, inscripcion IWHERE I.CodM = ‘6311’ and semestre=‘2-2011’ and E.CI =

I.CI

SELECT E.CI, E.Nombre, M.Nombre, I.semestreFROM Estudiante E, Inscripcion I, Materia MWHERE I.CodM = ‘6311’ and I.semestre=‘2-2011’ and E.CI =

I.CI and M.CodM = I.CodM Consultas

Page 19: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Árbol lineal izquierdo

Marzo 2012

Próxima clase

• Transformación del árbol canónico (Axiomas del Algebra Relacional)

• Técnicas de optimización

• Factor de Selectividad

• Costos de los operadores

Consultas

Page 20: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

1. Cascada de selecciones

Donde c1, c2, … cn son condiciones booleanas

Consultas

)...))((...()( 2121 RR cncccnand...andand cc

Page 21: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

2. Conmutatividad de la selección

Consultas

))(())(( 1221 RR cccc

Page 22: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

3. Cascada de proyecciones

Consultas

Page 23: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

4. Distributividad de la proyección y la selección

Consultas

Page 24: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

5. Conmutatividad del Join y del Producto cartesiano

Consultas

Page 25: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

6. Distributividad de la selección con respecto al Join y al Producto cartesiano

Este axioma permite empujar las selecciones hacia abajo en el arbol.

Consultas

Page 26: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

7. Distributividad de la proyección con respecto al Join y al Producto cartesiano

Este axioma permite empujar las proyecciones hacia abajo en el arbol.

Consultas

Page 27: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

7. Distributividad de la proyección con respecto al Join y al Producto cartesiano

Este axioma permite empujar las proyecciones hacia abajo en el arbol.

Consultas

Page 28: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

8. Conmutatividad de la unión y la intersección

9. Asociatividad de la union, la intersección, y el producto cartesiano

10. Distributividad de la selección con respecto a la Unión y la Intersección

11. Distributividad de la proyección con respecto a la Unión y la IntersecciónConsultas

Page 29: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Axiomas del Algebra Relacional

Marzo 2012

12. Conversión del Producto Cartesiano en Join

Si cond es una igualdad de atributos de R1 y R2

Consultas

Page 30: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos

El SMBD

Manejo de Memoria

Restauración

Técnicas de optimización

Marzo 2012

Consultas

• Se refiere a las mejores prácticas• Viene de la experiencia de los expertos

Heurísticas

• Transforma el árbol de ejecución usando diferentes técnicas (n transformaciones)

• Estima los costos de cada transformación y se queda con la que tiene costo mínimo

Costo

Page 31: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 31

El SMBD

Manejo de Memoria

Restauración

Técnicas de control de concurrencia

Marzo 2012

• Heurísticas– Se construye el árbol canónico– Se transforma usando los axiomas del AR en el

siguiente orden1. Aplicar el axioma o regla 12. Aplicar axiomas 2, 4, 6 y 10, para desplazar cada

operación SELECT hacia abajo en el árbol de ejecución.

3. Aplicar axiomas 5 y 9, para reordenar los nodos hoja utilizando el siguiente criterio: a) Posicionar las relaciones con los SELECT más

restrictivos de forma que sean ejecutadas en primer lugar.

Page 32: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 32

El SMBD

Manejo de Memoria

Restauración

Técnicas de control de concurrencia

Marzo 2012

• Heurísticas (continuación)

3. Aplicar axiomas 5 y 9, para reordenar los nodos hoja utilizando el siguiente criterio: b) Verificar que las ordenaciones no produzcan productos

cartesianos que no puedan convertirse en JOIN

4. Aplicar axioma 12, para combinar los SELECT con los PRODUCTOS CARTESIANOS, para formar una operación de JOIN

5. Aplicar axiomas 3, 4, 7, 11 para bajar en el árbol las operaciones PROJECT lo más que se pueda.

Page 33: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 33

El SMBD

Manejo de Memoria

Restauración

Técnicas de control de concurrencia

Marzo 2012

• Ejercicio– Seleccionar los estudiantes que pasaron

Administración de base de datos en el semestre 2-2009

Select Nombre From Estudiante E, Cursar C, Materia M Where E.CI = C.CI and Nota >=10, and

M.Cod_Mat =C.Cod_Mat and M.Nombre = ‘Administración de base de datos’ and semester_cursa = ’2-2009’

Page 34: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 34

El SMBD

Manejo de Memoria

Restauración

Factor de selectividad

Marzo 2012

• Una vez que se ha construido el árbol de ejecución lógico se debe construir el físico

• Es una técnica de estimación del tamaño de los resultados intermedios o vistas (cantidad de registros), por medio de una función de probabilidad

• Se asume independencia y uniformidad en los valores de los atributos

• Se aplica para las selecciones y los join

Page 35: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 35

El SMBD

Manejo de Memoria

Restauración

Factor de selectividad

Marzo 2012

• Uniformidad – Es igualmente probable que una tupla Ti tenga

un valor C en el atributo Aj.

– Los valores de Aj están distribuidos uniformemente entre las tuplas.

• Independencia – Al ejecutarse la siguiente consulta se

asume que la satisfacibilidad de que la condición cond1 es independiente a la satisfacibilidad de la condición cond2.

Se lee la probabilidad de que las tuplas

de Ti cumpla la condición Ai= c

Page 36: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 36

El SMBD

Manejo de Memoria

Restauración

Factor de selectividad

Marzo 2012

• Casos Base

Los que cumplen la condición

Valores totales

Page 37: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 37

El SMBD

Manejo de Memoria

Restauración

Marzo 2012

• Casos base– Factor de selectividad del Join

Page 38: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 38

El SMBD

Manejo de Memoria

Restauración

Ejemplo del uso del fs

Marzo 2012

• Ejemplo– ¿Cuál es el factor de selectividad la condición

sexo = ‘F’ en la tabla empleado?

– Si la tabla empleados contiene 300.000 registros ¿cuántos registros tiene la siguiente vista?

)(1 '' EmpleadoT FSexo

5,02

1),''( EmpleadoFSexofs

000.1505,0000.3001

),''(1

T

EmpleadoFSexofsEmpleadoT

Page 39: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 39

El SMBD

Manejo de Memoria

Restauración

Costo de un Árbol de ejecución

Marzo 2012

• Próxima clase– Costo de los Operadores físicos

• Join• Order by• Project• Select

– Evaluar el árbol de ejecución físico.• Materialización• Encausamiento

Page 40: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 40

El SMBD

Manejo de Memoria

Restauración

Clase de hoy

Marzo 2012

– Modelo de costo– Costo de los operadores del Algebra Relacional

• Select• Project.• Order By

Page 41: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 41

El SMBD

Manejo de Memoria

Restauración

Modelo de Costos

Marzo 2012

• 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.

Page 42: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 42

El SMBD

Manejo de Memoria

Restauración

Modelo de Costo

Marzo 2012

¿Cuál es el costo más importante en las bases de datos centralizadas?Acceso a disco

Page 43: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 43

El SMBD

Manejo de Memoria

Restauración

Marzo 2012

• 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)

Page 44: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 44

El SMBD

Manejo de Memoria

Restauración

Cálculo del espacio en disco requerido por una relación

Marzo 2012

1. Registros de longitud fija y no extensibleN: el número de registro del archivo ARa: el tamaño en bytes de cada registroB: Tamaño en bytes de cada bloque

aR

Bfdb

fdb

NANumBloques )(

Se usa para las tablas base

Page 45: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 45

El SMBD

Manejo de Memoria

Restauración

Estimación de costos

Marzo 2012

2. Extensibles / Tamaño Fijo

B

RNANumBloques a)(

Se usa para las tablas vista o resultados intermedios

Page 46: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 46

El SMBD

Manejo de Memoria

Restauración

Estimación de Costos

Marzo 2012

4. Tamaño variable se usan las mismas fórmulas pero se

calcula un promedio de tamaño del registro

muestreo. de ascon técnic

A, registroun de promedio tamañoAR

Page 47: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 47

El SMBD

Manejo de Memoria

Restauración

Costo de operadores físicos

Marzo 2012

• Selección• Ordenamiento• Proyección• Reunión

Page 48: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 48

El SMBD

Manejo de Memoria

Restauración

Estimación de costos en operaciones físicas: Selección

Marzo 2012

• 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)

)(Rcondicion

Page 49: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 49

El SMBD

Manejo de Memoria

Restauración

Selección sin índices

Marzo 2012

• Considere una operación selección sobre un archivo A y:

disco a acceso de tiempo:

disco de bloquesen

A relación la ocupa que tamaño:

D

TBA

Page 50: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 50

El SMBD

Manejo de Memoria

Restauración

Selección sin índices

Marzo 2012

• Búsqueda lineal

A

A

TBCosto

TBCosto

:clave la sobre es nocondición la Si

2

Page 51: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 51

El SMBD

Manejo de Memoria

Restauración

Selección sin índice

Marzo 2012

• 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 atribudo clave (y el archivo está ordenado según éste atributo)

)(log2 ATBCosto

fs)con calculan (secondición lacon

cumplen que bloques de Número :

)1()(log2

f

fA

TB

TBTBCosto

Page 52: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 52

El SMBD

Manejo de Memoria

Restauración

Selección con índices

Marzo 2012

• Asumimos que los índices son de tipo árbol B+ y la longitud del camino es siempre la altura del árbol.

Page 53: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 53

El SMBD

Manejo de Memoria

Restauración

Selección de igualdad

Marzo 2012

• Índice primarioSe obtiene el número de niveles de índice + 1

• Índice agrupado

• Índice secundarioindexación de atributo del selección de adCardinalid:

),(

__cos

snrRcfss

indicedelnivelesfdb

sto

indicedelnivelessto __cos

Page 54: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 54

El SMBD

Manejo de Memoria

Restauración

Selección de comparación

Marzo 2012

• Í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.

Page 55: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 55

El SMBD

Manejo de Memoria

Restauración

Selecciones complejas

Marzo 2012

• 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.

Page 56: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 56

El SMBD

Manejo de Memoria

Restauración

Selecciones Complejas

Marzo 2012

• 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– 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.

Page 57: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 57

El SMBD

Manejo de Memoria

Restauración

Operación Proyección

Marzo 2012

• Con duplicados

For each tupla t in B Guardar en B’ < t.At1, t.At2, …, t.Ati > End Resultado tabla o relación con registros

duplicados

• Costo = TBB (recorrer la tabla B)

• Costo de resultado intermedio– TBB’ (guardar la tabla proyectada)

B

B’

Page 58: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 58

El SMBD

Manejo de Memoria

Restauración

Operación Proyección

Marzo 2012

• Sin duplicados • Basado en ordenamiento

For each tupla t in B Guardar en B’ < t.At1, t.At2, …, t.Ati > 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

Page 59: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 59

El SMBD

Manejo de Memoria

Restauración

Operación Proyección

Marzo 2012

• Costo de proyección

• Costo de almacenamiento

)log( ''' BBBB TBTBTBTB

Recorrer B

Generar B’

Ordenar B’

''BTB Tabla proyectada sin duplicados

Page 60: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 60

El SMBD

Manejo de Memoria

Restauración

Operación Proyección

Marzo 2012

• Basado en HASHSe 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

Page 61: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 61

El SMBD

Manejo de Memoria

Restauración

Operación Proyección

Marzo 2012

• 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’’

'

'

3 BB

BB

TBTB

TBTB

B

Page 62: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 62

El SMBD

Manejo de Memoria

Restauración

Operación Join

Marzo 2012

• El operador Join se puede evaluar de varias maneras distintas– Nested loop join– Block Nested Loop Join– Merge sort join– Index Join– Hash Join

Page 63: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 63

El SMBD

Manejo de Memoria

Restauración

Nested Loop Join

Marzo 2012

For each tupla tA in A For each tupla tB in B

If satisfy (tA, tB, Cond) Return (tA. tB)

End End

End

Costo = TBA + RA*TBB

RA = cantidad de registro de A

Page 64: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 64

El SMBD

Manejo de Memoria

Restauración

Block Nested Loop Join

Marzo 2012

Este algorito se puede mejorar si se aprovechan los bloques de memoria disponibles

Si se carga A por bloques el costo seria

Costo = TBA + TBA*TBB

Si se tienen T bloques disponibles se dejan dos para entrada/salida

A B

BA

A *TBT-

TB TBCosto

2

Page 65: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 65

El SMBD

Manejo de Memoria

Restauración

Sort-Merge Join

Marzo 2012

Si ambas tablas están ordenadas sobre los atributos del Join, el costo es el menor

Costo = TBA + TBB

Si no hay que agregar el costo de ordenación

Costo = TBA Log(TBA )+ TBB Log(TBB ) +TBA +TBB

A B

Page 66: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 66

El SMBD

Manejo de Memoria

Restauración

Index Join

Marzo 2012

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

Page 67: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 67

El SMBD

Manejo de Memoria

Restauración

Hash Join

Marzo 2012

• Se dividen las tuplas de cada relación utilizando una función hash tal que:

)()( .. ),(),(/, bababa ththeitBparttApartBtAt

Page 68: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 68

El SMBD

Manejo de Memoria

Restauración

Hash Join

Marzo 2012

• h es una función que asigna a los atributos de join los valores {0,1,..,n-1}

• Ha0 .. Ha(n-1) denota las particiones de A inicialmente vacías. Se colocan las tuplas en Hai con i = h(ta[atributos join])

• Hb0 .. Hb(n-1) denota las particiones de B inicialmente vacías. Se colocan las tuplas en Hbi con i = h(tb[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

Page 69: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 69

El SMBD

Manejo de Memoria

Restauración

Hash Join

Marzo 2012

Page 70: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 70

El SMBD

Manejo de Memoria

Restauración

Video Join

Marzo 2012

• Videos– Video 1– Video 2

Page 71: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 71

El SMBD

Manejo de Memoria

Restauración

Calcular el costo de un árbol de ejecución

Marzo 2012

• 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

Page 72: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 72

El SMBD

Manejo de Memoria

Restauración

Ejercicio

Marzo 2012

Jugador (DI, Nombre, Apellidos, FechaNac, Direccion)DI: 9 bytesNombre: 40 bytesApellidos: 40 bytesFechaNac: 8 bytesDireccion: 50 bytes

Num registros: 250.000

Equipo( CodEq, NombreEq, FechaFund, Ciudad, Liga, Estadio)CodEq: 4 bytesNombreEq: 40 bytesFechaFund: 8 bytesLiga: 2 bytes (Nacional =0, Americana=1)Estadio: 50 bytes

Num registros: 30

Juegos(CodEq1, CodEq2, Temporada, Fecha, Resultado, CodEquipoGana)CodEq1: 4 bytesCodEq2: 4 bytesTemporada: 4 bytes, min : 1902, máximo 2011, valores diferentes, 110Fecha: 8 bytes (162 valores distintos)Resultado: 8 bytesCodEquipoGana: 4 bytes (INDICE)

Num registros: 18.000

Juega (DIJugador, CodEq, FechaIni, FechaFin, Posicion)DIJugador: 9 bytesCodEq: 4 bytesFechaIni: 8 bytes (un promedio de 20 jug por año)FechaFin: 10 bytesPosición: 20 bytes (9 valores distintos)

Num registros: 875.000

Page 73: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 73

El SMBD

Manejo de Memoria

Restauración

Marzo 2012

• 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.

Page 74: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 74

El SMBD

Manejo de Memoria

Restauración

Marzo 2012

• 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

– Indices primarios para las claves primarias, todos tienen 4 de altura

Page 75: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 75

El SMBD

Manejo de Memoria

Restauración

Ejemplo de plan de ejecuciónCaso Oracle

Marzo 2012

SELECT e.employee_id, e.last_name, e.salary, d.department_name, l.cityFROM employees e, departments d, locations lWHERE e.department_id = d.department_id

AND d.location_id = l.location_idAND l.city = 'Oxford'AND e.salary > 10500 AND e.last_name LIKE '%e%';

Page 76: Abd procesamiento consultas

El DBA

Concurrencia

Diccionario Datos

Integridad

Seguridad

Proc. Consultas

Administración de Base de Datos 76

El SMBD

Manejo de Memoria

Restauración

Marzo 2012