Está en la página 1de 43

Administracin de Base de Datos

Procesamiento de Consultas
Ing. Ronald Prez
rrperez@unimet.edu.ve
rperez@shopepk.com
Agenda
Objetivo
Arquitectura de un motor de base de datos
Componentes
Panormica procesamiento de consultas
Algebra relacional
Reglas de equivalencia
Procesamiento de consultas
Optimizacin de consultas.
Expresiones equivalentes
Fase de optimizacin
Comparacin de enfoques
Informacin de catlogo
Cmo se construye un plan?
Tcnicas algebraicas
Tcnicas fsicas
Ejercicio
Objetivo
Disminuir el tiempo de ejecucin de las consultas
realizadas frecuentemente en una base de datos.
Cul es el camino de acceso a los datos?
Modificar el diseo fsico
o Aadir redundancia y modificar la organizacin
o Reorganizar las estructuras para mantener las
caractersticas a pesar de borrados y actualizaciones.
Arquitectura de un motor de base de datos
Componentes
Disk Manager
Capa de ms bajo nivel de la BD
Maneja el espacio en disco
Oculta los detalles de cmo se guardan las tablas
en hardware
Provee una abstraccin a capas superiores,
haciendo que las tablas se vean como una coleccin de
pginas
Componentes
Buffer Manager
Responsable de traer las pginas del disco a la
memoria.
Capa que administra un espacio de memoria de la
BD.
Divide a la memoria en pginas de igual tamao
(formando uno o varios pooles de memoria).
Capas superiores pueden usar las pginas sin
preocuparse si estn en disco o memoria, de eso se
encargar este componente.
Componentes
Query Evaluation Engine
Recibe comandos SQL.
Al recibir una consulta, el Parser la interpreta y la
pasa al Query Optimizer.
El Query Optimizer busca un plan de ejecucin
eficiente.
El plan generado es finalmente ejecutado por el
Query Executor.
Componentes
Transaction Manager
Controla la ejecucin de las transacciones.
Lock Manager
Mantiene registro de los locks sobre los objetos de la
BD.
Recovery Manager
Mantiene un log sobre los cambios en la BD.
Se encarga de restaurar la BD a un estado
consistente en caso de una cada.
Panormica del procesamiento de consultas
Los lenguajes de consultas relacionales (como el SQL) nos
dan una interfaz declarativa de alto nivel para acceder a
los datos almacenados en una base de datos.
El procesamiento de consultas se refiere al conjunto de
actividades que realiza un motor de base de datos para
la extraccin de datos de la base de datos a partir de
una sentencia en un lenguaje de consulta.
Panormica del procesamiento de consultas
Procesamiento de consultas: las actividades implicadas
en el anlisis sintctico, la validacin, la optimizacin y la
ejecucin de consultas.
Optimizacin de consultas: la actividad de seleccionar una
estrategia de ejecucin eficiente para el procesamiento
de la consulta.
Panormica del procesamiento de consultas
Ejemplo hallar todos los gerentes que trabajen en la sucursal
de Londres:
SQL: SELECT * FROM Staff s, Branch b
WHERE s.branchNo = b.branchNo AND
(s.position= Manager AND b.city =London)
Suponer que hay:
1000 tuplas en Staff
50 tuplas en Brach
50 empleados con categora Maneger
5 sucursales en Londres
Panormica del procesamiento de consultas
Los pasos bsicos son:
1. Parsing y traduccin
2. Optimizacin
3. Generacin de cdigo
4. Ejecucin de la consulta
Estos pasos en general son realizados por diferentes
componentes del motor. Los componentes clave son: el
optimizador de consultas y el procesador de consultas.
Algebra relacional
Definicin
Conjunto cerrado de operaciones
Actan sobre las relaciones
Producen relaciones como resultados
Pueden combinarse para construir expresiones
ms complejas
Operadores Bsicos
Unin
Diferencia
Producto cartesiano
Seleccin
Proyeccin
Son operacionalmente
completos permiten expresar
cualquier consulta a una BDR
Operadores Derivados
Interseccin
Join
Divisin
Asociacin
oNo aaden nada nuevo
oSe forman combinando los
operadores bsicos.
oSon tiles en determinadas
consultas
Reglas de equivalencia
1. Las operaciones de seleccin conjuntivas pueden dividirse
en una secuencia de selecciones individuales.
Cascada de selecciones.
2. Las operaciones de seleccin son conmutativas.
Conmutacin de selecciones.
3. Slo son necesarias las ltimas operaciones de una
secuencia de operaciones de proyeccin, las dems pueden
omitirse.
Cascada de proyecciones
)) ( ( ) (
2 1 2 1
E E
u u u u
o o o =
.
)) ( ( )) ( (
1 2 2 1
E E
u u u u
o o o o =
[ [ [ [
=
1 2 1
) ( )) )... ) ( (...( (
L L L L
E E
n
Reglas de equivalencia
4. Las selecciones pueden combinarse con los productos
cartesianos y con las reuniones.
5. las operaciones de reunin son conmutativas
6. (a) Las operaciones de reunin natural son asociativas:
(b) Las reuniones son asociativas en sentido siguiente:
2 1 2 1
2 1 2 1
2 1 2
1
) ( .
) ( .
E E E E b
E E E E a
u u u
u
u
u
o
o
.
X = X
X =
1 2 2 1
E E E E
u u
X = X
) ( ) (
3 2 1 3 2 1
E E E E E E X X = X X
3 2 2
3 2 1 3 2 1
E y E de atributos solo
) ( ) (
2 3 1 3 2 1
implica donde
E E E E E E
u
u u u u u u
X X = X X
. .
Reglas de equivalencia
7. Las operaciones de seleccin se distribuyen por la
operacin reunin bajo las dos condiciones siguientes:
(a) Cuando los atributos de la condicin de seleccin implican
nicamente los atributos de una de las expresiones (por
ejemplo E) que se estn uniendo.
(b) Cuando
1
implica nicamente los atributos de E
1
y
2
Implican los atributos de E
2
2 1 2 1
)) ( ( ) (
0 0
E E E E X = X
u u
o o
)) ( ( )) ( ( ) (
2 1 2 1
2 1 2 1
E E E E
u
u
u
u
u u
o o o X = X
.
0
u
Reglas de equivalencia
9. Las operaciones de unin e interseccin son conmutativas
La diferencia de conjuntos no es conmutativa.
10. La unin e interseccin de conjuntos son asociativas.
11. La operacin seleccin se distribuye por las operaciones
de unin, interseccin y diferencia de conjuntos
12. La operacin de proyeccin es distributiva con respecto
a la operacin unin:
1 2 2 1
1 2 2 1
E E E E
E E E E
=
=
) ( ) (
) ( ) (
3 2 1 3 2 1
3 2 1 3 2 1
E E E E E E
E E E E E E
=
=
=
=
para no pero para y tambin - ) (E ) E - (E
y para similar manera de y ) (E - ) (E ) E - (E
2 1 2 1
2 1 2 1
E
u u
u u u
o o
o o o
)) (( ( )) (( ( ) (
2 1 2 1
E E E E
L L L
[ [ = [
Procesamiento de consultas
Dada una consulta, encontrar un plan de ejecucin eficiente.
Un plan de ejecucin define cmo se resolver una consulta
dada, indicando paso a paso los algoritmos y estructuras que
se usarn para resolverla.
Tiempo bsqueda plan eficiente = 1 seg Tiempo
de ejecucin plan = 1 seg
Tiempo bsqueda mejor plan = 10 min
Tiempo de ejecucin plan = 1 ms
Query
Tiempo total = 10 min (aprox)
Tiempo total = 2 seg
Analizar todo el espacio de bsqueda puede ser prohibitivamente costoso, por lo que se utilizan
diferentes tcnicas para evitar analizarlo completo, pero obteniendo planes eficientes.
Optimizacin de consultas.
El coste de una consulta se puede expresar:
o El tiempo de acceso a almacenamiento secundario.
o El tiempo de CPU para ejecutar la consulta.
o El tiempo de comunicacin (BD distribuidas).
El tiempo de acceso depender:
o Del volumen de datos sobre el cul debe actuar
(nmero y tamao de las tuplas)
o De la organizacin fsica (existencia de ndices,
agrupamientos, etc.)
o De su localizacin (memoria principal o dispositivo
externo).
o Del tamao del buffer de memoria principal que se
dedica a almacenar las tuplas mientras se ejecutan los
operaciones sobre ellas.
Expresiones equivalentes
Los optimizadores de consultas usan las reglas de
equivalencia para generar de manera sistemtica
expresiones equivalentes a la expresin de consulta dada.
El proceso es:
o Para cada sub-expresin que coincide con la parte
derecha o izq. de una regla, se genera una nueva
expresin y con esta se contina el mismo proceso
hasta que no se puedan generar nuevas expresiones
o Resulta costoso tanto en tiempo como en espacio.
Expresiones equivalentes
El tiempo puede reducirse si el optimizador tiene en cuenta
la estimacin de costes y de este modo evita evaluar
ciertas expresiones.
El espacio de memoria se puede reducir si dos
subexpresiones comparten el mismo espacio cuando stas
son idnticas
Fase de optimizacin
La fase de optimizacin de una consulta tiene por objeto
generar el plan de ejecucin para la consulta a partir del
programa algebraico generado en la fase anterior de
descomposicin.
Deben contemplarse diversos aspectos en esta fase de
optimizacin:
El momento o modo de generacin del plan.
La estrategia de optimizacin de operadores algebraicos
del programa.
Fase de optimizacin
En cuanto al momento de generacin, se
contemplan:
Planes dinmicos
Planes estticos
La estrategia de optimizacin permite diferenciar los
enfoques de:
Optimizacin por reglas
Optimizacin por costes
Comparacin de enfoques
Plan dinmico Plan esttico
Toda la informacin necesaria para
optimizar la consulta est disponible
cada vez que se genera el plan.
El plan se genera con la informacin
disponible en el momento de su
catalogacin. Si la informacin
cambia con el tiempo, el plan puede
no ser ptimo en las nuevas
circunstancias.
Cada vez que se ejecuta la consulta
se genera el plan, aadiendo el
tiempo de generacin del plan al
tiempo de ejecucin del mismo.
Slo se incurre en el coste o tiempo
de generacin del plan en el
momento en que se cataloga. Las
transacciones no sufrirn este
tiempo de generacin, pues pueden
cargar y ejecutar el plan en
memoria.
Comparacin de enfoques
Optimizacin basada en reglas Optimizacin basado en coste
Slo tiene en cuenta los caminos de
acceso existentes en el esquema
interno de la BD (ndices primarios,
secundarios, clusters, rutinas de
hashing, etc.), un conjunto
predefinido de reglas (mtodos
alternativos) y la manera de
especificar las condiciones en la
consulta (constantes, variables, uso
de funciones, etc.).
Maneja caminos de acceso, como en
el caso de optimizacin por reglas, e
informacin volumtrica (tamaos)
sobre las tablas manejadas en cada
consulta. El objetivo es maximizar el
througput o minimizar el uso de
recursos necesarios para procesar
la consulta (minimizar el tamao de
resultados intermedios para
ejecutar cada operador algebraico).
Es el enfoque clsico de optimizacin. Para cada resultado intermedio es
necesario evaluar costes de los
mtodos alternativos y el tamao
de dicho resultado intermedio.
Informacin de catlogo
Para cada SGBD es distinta pero al menos tiene para cada
relacin:
N de tuplas de la relacin r (nr)
N de bloques que contienen tuplas de la relacin r (br)
Tamao en bytes de una tupla de r (tr)
Factor de bloqueo de r. N de tuplas de r que caben en
un bloque. (fr)
N de valores distintos del atributo A de la relacin (
V(A,r))
N medio de tuplas de r que satisfacen una condicin
de igualdad sobre el atributo A de la relacin r ( CS(A,r) )
oSi A es clave de r CS(A,r)=1
oSi A no es clave de r, CS(A,r)= nr/V(A,r)
Informacin de catlogo
Para los ndices:
Grado de salida de los nodos internos del ndice i (para
ndices B+) (gi)
Altura del ndice para el atributo A de r (AAi)
Nmero de bloques que ocupa el nivel ms bajo (nivel
de hojas) del ndice i
(MAi)
Cmo se construye un plan?
Primer paso
SQL lgebra Relacional rbol Cannico
Ejemplo
SELECT nombreJugador, nombreEquipo
FROM Jugador J, Equipo E
WHERE J.idEquipo = E.idEquipo

nombreJugador, nombreEquipo
(
Jugador.idEquipo=Equipo.idEquipo
(Jugador X Equipo))

nombreJugador, nombreEquipo

Jugador.idEquipo=Equipo.idEquipo
X
Jugador Equipo
Cmo se construye un plan?
Segundo paso
Modificaciones algebraicas sobre el rbol
Ejemplo

nombreJugador, nombreEquipo

Jugador.idEquipo=Equipo.idEquipo
X
Jugador Equipo

nombreJugador, nombreEquipo

Jugador Equipo

nombreJugador, nombreEquipo

Equipo Jugador
Tcnicas algebraicas
Se utilizan Heursticas
Se basan en propiedades algebraicas
Siempre generan rboles equivalentes
Son reglas que, por lo general, mejoran la
performance de las consultas
Ejemplos
Cascada de selecciones
Bajar selecciones
Bajar proyecciones
Cambiar productos cartesianos por joins
Cmo se construye un plan?
Tercer paso
Seleccin de la implementacin de cada
operador
Ejemplo

nombreJugador, nombreEquipo

Jugador Equipo
BNLJ
pipeline
Tcnicas fsicas
Consiste en seleccionar implementaciones para los
operadores basndose en cmo estn organizados
los archivos y las estructuras adicionales que existen.
Utilizan una estructura de la BD llamada Catlogo
o Mantiene informacin estadstica acerca de los
datos de las diferentes tablas.
o Se actualiza peridicamente y no estn siempre
sincronizadas con los datos reales.
o Permite estimar la selectividad de los diferentes
operadores.
Ejercicio
Micro(numMicro, marca, numEmpresa)
Empresa(numEmpresa, nombreEmpresa, fechaCreacion,
direccion)
Viaje(numMicro,fechaViaje,destino)
Micro.numEmpresa no admite nulos y es FK de Empresa.
Viaje.numMicro es FK de Micro.
Se desea optimizar la siguiente consulta:
SELECT numMicro, numEmpresa, nombreEmpresa,
fechaCreacion, direccion,destino, fechaViaje
FROM Micro M, Empresa E, Viaje V
WHERE M.numMicro = V.numMicro
AND M.numEmpresa = E.numEmpresa
AND E.fechaCreacion >= 1/1/2000
AND V.fechaViaje >= 1/1/2007
AND V.fechaViaje < 1/2/2007
AND M.marca = Mercedes Benz
Ejercicio
Se tiene como datos:
La longitud de los campos es de 128 bytes cada uno.
Tuplas Micro: 200.000.
Tuplas Empresa: 3.000.
Tuplas Viaje: 2.500.000.
Micros con marca Mercedes Benz: 50.000.
Viajes de enero del 2007: 100.000.
Empresas creadas desde el ao 2000: 2.000.
Adems:
Se cuenta con 5 bloques de memoria.
El tamao de bloque es 2048 bytes.
Se asume distribucin uniforme.
a) Armar el rbol cannico de la consulta.
b) Obtener un rbol optimizado, indicando su plan de ejecucin, y
calcular los costos.
c) Describir brevemente qu estructura agregara para mejorar la
performance de la consulta (sin calcular costos).
Ejercicio (Solucin)
Armar la consulta en lgebra relacional:
numMicro, nombreEmpresa, numEmpresa, fechaCreacion,
direccion, destino, fechaViaje
( M.numMicro = V.numMicro
AND M.numEmpresa = E.numEmpresa
AND E.fechaCreacion >= 1/1/2000
AND V.fechaViaje >= 1/1/2007
AND V.fechaViaje < 1/2/2007
AND M.marca = Mercedes Benz
(M x E x V))
Ejercicio (Solucin)
rbol cannico:
Ejercicio (Solucin)
Separar la seleccin en varias selecciones:
Ejercicio (Solucin)
Bajar las selecciones que son condiciones de junta para poder
cambiar productos cartesianos por natural joins.
Ejercicio (Solucin)
Cambiar productos cartesianos + condicin de junta por natural
joins
Ejercicio (Solucin)
Bajar las selecciones hasta las hojas:
Ejercicio (Solucin)
Proyectar slo los atributos que se usan:
Ejercicio (Solucin)
Analizar utilidad de las selecciones:
Ejercicio (Solucin)
Calcular los costos:

También podría gustarte