Professional Documents
Culture Documents
Objetivos
1
Administracin de Bases de Datos
Contenidos
Reglas transformacin
2
Administracin de Bases de Datos
3
Administracin de Bases de Datos
Procesamiento de consultas:
Optimizacin de consultas:
4
Administracin de Bases de Datos
5
Administracin de Bases de Datos
6
Administracin de Bases de Datos
2. Optimizacin
3. Generacin de cdigo
4. Ejecucin
7
Administracin de Bases de Datos
Anlisis lxico
Identificar los componentes lxicos en el texto de la consulta SQL
Anlisis sintctico
Revisar la correccin gramatical de la consulta SQL
Validacin semntica
Verificar la validez de los nombres de las relaciones y atributos
Traduccin de la consulta a una representacin interna
El formalismo usado debe ser:
Rico, para representar toda consulta posible
Neutral, sin predisponer a ciertas opciones de optimizacin
lgebra relacional
8
Administracin de Bases de Datos
SELECT nombrep
FROM Empleado E, Trabaja_en T
WHERE E.nss=T.nsse and T.nump>=2;
9
Administracin de Bases de Datos
Resultado
restringir(T.nump=2)
Reunir(E.nss=T.nsse)
EMPLEADO(E) TRABAJA_EN(T) 10
Administracin de Bases de Datos
Optimizacin
Optimizacin heurstica
Estimacin de costes
11
Administracin de Bases de Datos
Optimizacin heurstica
12
Administracin de Bases de Datos
Optimizacin
13
Administracin de Bases de Datos
Optimizacin
14
Administracin de Bases de Datos
Optimizacin
15
Administracin de Bases de Datos
Optimizacin
OPTIMIZADOR
16
Administracin de Bases de Datos
Optimizacin
Informacin estadstica
El xito de la estimacin estadstica del tamao y coste de las
operaciones incluidas en una consulta depende de la cantidad y
actualidad de la informacin almacenada en el diccionario de datos
Para cada relacin
Cardinalidad (nmero de tuplas)
Factor de bloque (nmero de tuplas que caben en cada bloque)
Nmero de bloques ocupados
Mtodo de acceso primario y otras estructuras de acceso (ndices,
hash, etc.)
Atributos indexados, de dispersin, de ordenamiento (fsico o no), etc.
Para cada atributo:
Nmero de valores distintos almacenados
Valores mximo y mnimo
Nmero de niveles de los ndices de mltiples niveles
17
Administracin de Bases de Datos
Optimizacin
18
Administracin de Bases de Datos
Optimizacin
19
Administracin de Bases de Datos
21
Administracin de Bases de Datos
23
Administracin de Bases de Datos
Conmutatividad
op es conmutativo si A op B = B op A
son conmutativas UNION, INTERSECTION, JOIN
no conmutativas DIFERENCIA
Asociatividad
op es asociativo si A op (B op C) = (A op B) op C
son asociativas UNION, INTERSECTION, JOIN
no asociativas DIFERENCIA
Idempotentes
op es idempotente si A op A = A
son idempotentes DIFERENCIA, UNION, INTERSECTION, JOIN
24
Administracin de Bases de Datos
Expresiones condicionales
El optimizador debe saber aplicar reglas generales a operadores
De comparacin (<,>, ...)
Lgicos (AND, OR, ...)
25
Administracin de Bases de Datos
Ventajas de la FNC
27
Administracin de Bases de Datos
Reglas heursticas
28
Administracin de Bases de Datos
Fuerza bruta
Bsqueda por ndice
Bsqueda Hash
Mezcla
Hash
Combinacin de las anteriores
29
Administracin de Bases de Datos
Fuerza bruta
Bsqueda por ndice
Bsqueda Hash
Mezcla
Hash
Combinacin de las anteriores
30
Administracin de Bases de Datos
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if (R[i].k = S[j].k) aadir R[i]+S[j] al resultado
O(m*n)
31
Administracin de Bases de Datos
for(i=1;i<=m;i++)
// existen t entradas de X con valor de atributo R[i].k
for(j=1;j<=t;j++)
aadir R[i]+S[j] al resultado
32
Administracin de Bases de Datos
for(i=1;i<=m;i++)
// existen t tuplas accesibles desde H(R[i].k)
for(j=1;j<=t;j++)
aadir R[i]+S[j] al resultado
33
Administracin de Bases de Datos
34
Administracin de Bases de Datos
O(n+m)
35
Administracin de Bases de Datos
Optimizacin en MySQL
http://www.mysql.com/information/benchmarks.html
http://www.mysql.com/information/crash-me.php
36
Administracin de Bases de Datos
EXPLAIN
37
Administracin de Bases de Datos
EXPLAIN
38
Administracin de Bases de Datos
EXPLAIN
39
Administracin de Bases de Datos
EXPLAIN
Soluciones:
Aadir ndices
ANALIZE TABLE
OPTIMIZE TABLE
40
Administracin de Bases de Datos
WHERE
Substitucin de constantes
(b>=5 AND b=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6) =>
B=5 OR B=6
41
Administracin de Bases de Datos
Otras optimizaciones
DISTINCT
ORDER BY
LIMIT
INSERT
UPDATE
DELETE
42
Administracin de Bases de Datos
Optimizacin de la estructura de la BD
43
Administracin de Bases de Datos
Los ndices
44
Administracin de Bases de Datos
Diferentes configuraciones
my-small.cnf
my-medium.cnf
my-large.cnf
my-huge.cnf
45
Administracin de Bases de Datos
Replicacin
46
Administracin de Bases de Datos
Replicacin
47