Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap07 Optimizacion PDF
Cap07 Optimizacion PDF
Cap07 Optimizacion PDF
WHERE NUMD=5);
Sintctica o reglas heursticas
lgebra
Traduccin
Consulta
Utiliza un rbol o un grafo de consultas anidada.
lgebra
Se estudian en la
Semntica asignatura DBD
Se
Seevala
evalaslo
slouna
unavez.
vez.
El
Elresultado
resultadosesetrata
tratacomo
como
una
unaconstante
constante(>C)
(>C)
Objetivo: reducir el tamao de las tablas intermedias Representa una expresin del lgebra relacional
Una consulta se puede representar por varios
En forma de Generada por rboles distintos
Optimizador: rbol o de grafo el analizador
sintctico
Reglas heursticas: SELECTP.NMEROP, P.NMD, E.APELLIDO,
E.DIRECCIN, E.FECHA_NCTO
modifican la representacin interna de la consulta FROM PROYECTO AS P, DEPARTAMENTO AS D,
EMPLEADO AS E
Despus se genera un plan de ejecucin:
WHERE P.NMD=D.NMEROD AND
Para ejecutar grupos de operaciones D.NSS_JEFE=E.NSS AND
Segn los caminos de acceso que tengan los P.LOCALIZACIN=Stafford
ficheros
ndices, direccionamiento calculado P.NMEROP, P.NMD,
E.APELLIDO, E.DIRECCIN,
Regla principal: E.FECHA_NCTO
|| D.NSS_JEFE=E.NSS
Primero ejecutar seleccionar () y proyectar ()
Orden de ejecucin
Al final ejecutar reunir (||, *) y otras operaciones
binarias
|| P.NMD=DNMEROD E
P.LOCALIZACINP=Stafford D
Lo genera el analizador sintctico de manera estndar Transformar el rbol en uno de ejecucin eficiente
Sin optimizar Basada en reglas de equivalencia (r.e.) entre
Primero los , luego condiciones de y ||. Por ltimo expresiones del lgebra relacional
. Reglas heursticas: guan la aplicacin de las r.e.
Muy ineficiente (debido a los )
Apellido de los empleados que
SELECTP.NMEROP, P.NMD, E.APELLIDO, EJEMPLO: trabajan en el proyecto Acuario
E.DIRECCIN, E.FECHA_NCTO nacidos despus de 1957
FROM PROYECTO AS P, DEPARTAMENTO AS D,
SELECT APELLIDO
EMPLEADO AS E
FROM EMPLEADO, TRABAJA_EN, PROYECTO
WHERE P.NMD=D.NMEROD AND
WHERE NOMBREP=Acuario AND NMEROP=NMP
D.NSS_JEFE=E.NSS AND
AND NSSE=NSS AND FECHA_NCTO>31-DIC-1957
P.LOCALIZACIN=Stafford
P.NMEROP, P.NMD,
APELLIDO
NOMBREP=Acuario Y NMEROP=NMP
1
E.APELLIDO, E.DIRECCIN,
E.FECHA_NCTO
Y NSSE=NSS Y FECHA_NCTO>31-DIC-1957
D.NSS_JEFE=E.NSS Y
P.NMD=DNMEROD Y
P.LOCALIZACINP=Stafford PROYECTO
EMPLEADO TRABAJA_EN
E
Los crean un fichero muy grande
Slo se necesita usar la tupla del proyecto Acuario
P D Slo reunir los empleados nacidos despus de 1957
APELLIDO APELLIDO 2
NOMBREP=Acuario Y NMEROP=NMP NMEROP=NMP
1
Y NSSE=NSS Y FECHA_NCTO>31-DIC-1957
NSSE=NSS NOMBREP=Acuario
PROYECTO
PROYECTO
EMPLEADO TRABAJA_EN
FECHA_NCTO>31-DIC-1957 TRABAJA_EN
APELLIDO 2
Mejor primer con
proyecto Acuario
NMEROP=NMP | que
Mejor |
ms APELLIDO
3
NSSE=NSS
NSSE=NSS NOMBREP=Acuario
PROYECTO
NMEROP=NMP FECHA_NCTO>31-DIC-1957
FECHA_NCTO>31-DIC-1957
TRABAJA_EN
EMPLEADO
NOMBREP=Acuario
EMPLEADO
TRABAJA_EN
Mejor que el primer sea con el proyecto PROYECTO
Acuario que slo obtiene una tupla
(NOMBREP es clave)
A. Jaime 2005 DBD Tema 7 9 A. Jaime 2005 DBD Tema 7 10
Optimizacin con rboles: ejemplo (4) Optimizacin con rboles: ejemplo (5)
APELLIDO 3
APELLIDO 4
NSSE=NSS
||NSSE=NSS
NMEROP=NMP FECHA_NCTO>31-DIC-1957 ||NMEROP=NMP FECHA_NCTO>31-DIC-1957
EMPLEADO
NOMBREP=Acuario EMPLEADO
Hay uno o varios por cada operacin del lgebra Ordena el fichero segn alguno de sus campos
Algunos algoritmos exigen una organizacin de datos Mtodo comn estrategia clasificar-fusionar:
determinada (por ejemplo que haya ndice primario)
Fase de clasificar:
Fichero 95 110 50 36 10 100 153 40 120 60 70 130 22 80 140 Se basa en estimaciones de coste de las operaciones
original Busca la estrategia de menor coste (puede NO ser la
Clasificacin en cada bloque ptima)
S3: ndice primario o dir. calculado, Sobre el campo b) Condicin de igualdad con clave
de bsqueda
bsqueda de 1 registro, condicin de igualdad CS6b= x + 1
a) ndice: CS3a= x + 1 (x=n de niveles) c) Condicin con >, <, si aprox. r/2
b) Direccionamiento calculado: satisfacen la condicin
r/2= mitad de los registros
CS3b= 1 (aprox. para el esttico) CS6c= x + (bi1/2) + (r/2) a travs del ndice
(*) Generalmenteno se usa porque en BD no se suelen usar ficheros bi1/2 =mitad de bloques con hojas
ordenados salvo si hay ndice primario
Tambin se puede (nivel 1 del ndice)
aplicar a un intervalo
Adams, Robin
Bloque 1
Abbott, Diane Aaron, Ed
Wright, Pam Abbott, Diane
Acosta, Marc Ejemplo de fichero con ndice primario Ejemplo de fichero con ndice de agrupacin
Adams, John Clave Campo de
Bloque 2
...
Aaron, Ed 8
Bloque n
Wyatt, Charles 1 3 3
Acosta, Marc 16 15
Zimmer, Byron 16 7 7
Algoritmos de seleccin: S1 3
28 24
Algoritmos de seleccin: 7
Sobre campo de ordenacin: S1, S2a, S2b 28
9
Resto de campos: S1 7
Ejemplo de fichero de direccionamiento calculado 9
Campo de dir. Algoritmos de seleccin:
calculado Sobre clave primaria:
340 S1, S2a, S3a, S4 Algoritmos de seleccin:
460 Campo de dir. Resto de campos: S1 Sobre campo de agrupacin:
calculado
580 981 nulo Algoritmos de S1, S2b, S4, S5
seleccin: Resto de campos: S1
321 Sobre campo de dir.
0
761 182 calculado: S1, S3b
1
...
91 Resto de campos: S1
...
nulo
652 nulo
...
M-1
399
89
630
4) ND=5 AND SALARIO>30.000 AND SEXO=F: se puede Aqu consideraremos este tipo de reunin:
aplicar el algoritmo S7
1 ND=5: CS6a= 82 R |X|A=B S
1 SALARIO>30.000: CS4= xSALARIO + bE/2 =1.003 Ahora se presentan los 4 algoritmos considerando
1 SEXO=M: CS6a= xSEXO+sSEXO = 1+5.000 = 5.001 slo registros. Despus se revisan considerando
Lo mejor es aplicar S7 de la siguiente forma: bloques.
usar S6a para ND=5 y para cada registro obtenido
comprobar el resto de la condicin en memoria
(SALARIO >30.000 AND SEXO=F) R1: Bucle anidado (fuerza bruta) R |X|A=B S
Para cada rR
5) ND=5 OR SALARIO>30.000 OR SEXO=F: condicin Para cada sS
disyuntiva. La nica alternativa a la fuerza bruta es Si r[A]=s[B] obtener tupla con r y s
R |X|A=B S Fin
calcular cada subcondicin por separado y hacer la
unin de los resultados: Por ejemplo, S tiene un
82 + 1.003 + 2.000 + unin = 3.085 + unin ndice sobre el atributo B
Lo mejor es aplicar directamente el algoritmo S1a y
comprobar toda la condicin en cada registro
R2: Bucle nico (estructura de acceso) R |X|A=B S
Para cada rR
acceder con la estructura a S y encontrar
las tuplas con s[B]=r[A]
R |X|A=B S Para cada s encontrada obtener tupla con r y s
Fin
|X|
g) R4: si DEPTO NO entra en memoria
CR2a 3*(bE + bD) = 6.039 |X| R4
|X| R3
DATOS P.LOCALIZACINP=Stafford(P)
tbl r b atrib. d s estr. x bi1 CS1a: bP=100
Localiz.P 200 10 IS 2 4 CS6a: x+s =2+10=12Mejor S6a
P 2.000 100 NmeroP 2.000 1 Resultado 10 (s) registros. Entran en 1 bloque (fblP=20)
NmD 50 40 Materializado: en TEMP1 (r=10, b=1)
NmeroD 50 1
D 50 5 Orden reuniones. Estudio de la alternativa 1: Supuesto que se
NSS_Jefe 50 1 renen todos los
NSS 10.000 1 IS 2 50 TEMP1|| P.NMD=D.NMEROD D registros de TEMP1
y que fblT1D=5
E 10.000 2.000 ND 50 200 CR1: bT1+(bT1*bD)+bres.=1+(1*5)+10/5 = 8
Salario 500 20 IS 2 50 CR3: 2*bT1*(1+log2 bT1)+2*bD* (1+log2 bD)+bT1+bD+bres=
2*1*(1+0)+2*5(1+3)+1+5+10/5=50
SELECT P.NMEROP, P.NMD, E.APELLIDO
FROM PROYECTO AS P, DEPARTAMENTO AS D, EMPLEADO AS E CR4: bT1+bD+ bres .= 1+5+10/5 = 8
WHERE P.NMD=D.NMEROD AND D.NSS_JEFE=E.NSS AND Mejor R1 R4
P.LOCALIZACIN=Stafford Materializado: en TEMP2 (r=10, b=2) Supuesto que se
renen todos los
TEMP2 || D.NSS_JEFE=E.NSS E registros de TEMP2
Optimizacin y que fblT1D=5
CR1: bT2+(bT2*bE)+ bres.= 2+(2*2.000)+10/5.= 4.004
heurstica
CR2: bT2+(rT2*(x+1))+ bres.= 2+(10*(2+1))+10/5= 34
CR3: 2*bT2*(1+log2 bT2)+2*bE* (1+log2 bE)+bT2+bE+bres=
P.NMEROP, P.NMD, 2*2*(1+1)+2*2.000*(1+11)+2+2.000+10/5= 50.010
E.APELLIDO Alternativas
|| D.NSS_JEFE=E.NSS CR4: bT2+bE+ bres .= 2+2.000+10/5 = 2.004
(a izdas):
1. P || D || E Mejor R2
|| P.NMD=D.NMEROD E Orden
reuniones 2. D || P || E Supuesto que se hace segmentado, la alternativa 1
P.LOCALIZACINP=Stafford D 3. D || E || P
precisa: 12+1+8+34=56 transferencias de bloque
4. E || D || P
P Orden reuniones. Estudio de las alternativas 2, 3 y 4 (ejercicio)
Se elige el orden de reuniones de menor coste total
S1: Lineal
a. Todos: CS1a=b
b. Uno: CS1b=b/2
S2: Binaria
a. (=) clave: CS2a=log2 b
de
S3: 1 registro
a. Primario: CS3a= x + 1
b. Dir. calculado:CS3b= 1
de coste
CS4= x + b/2 (r/2 reg. satisfacen)
Ingrediente
El fichero Premio tiene las siguientes caractersticas: El fichero Jugador tiene las siguientes caractersticas:
1.000 registros y 50 bloques (log250=6). 1.000 registros y 40 bloques (log240=5).
ndice secundario sobre Ao de 3 niveles y el ndice primario sobre DNI de 2 niveles.
fichero contiene 50 aos distintos (s=1000/50). ndice secundario sobre Cd_Equipo de 3 niveles y
El fichero Persona tiene: SCd_Equipo=7.
10.000 registros y 500 bloques (log2500=9). El fichero Equipo tiene :
Un ndice secundario sobre Sexo de 2 niveles 10 bloques (log210=4) y factor de bloques 20.
El fichero Acta tiene: ndice secundario sobre el atributo no clave Pas de
100.000 registros y 300 bloques (log2300=9). 4 niveles y SPas= 3.
Un ndice secundario sobre CdPelcula y s=6.
Cul ser la forma ms apropiada de realizar cada una
Cul ser la forma ms apropiada de realizar cada una de las siguientes operaciones:
de las siguientes operaciones: a) DNI=123456789 and Cdigo_E= ITA (JUGADOR).
a) Euros>=500 and Ao= 2000 (Premio). b) Jugador* Equipo contando con un bfer para cada
b) Persona * Acta. fichero