Académique Documents
Professionnel Documents
Culture Documents
CAPITULO VIII
OPTIMIZACION DE CONSULTAS
Contenido
1. Introduccin 2. Arboles de consulta y optimizacin algebraica 3. Generacin de planes de ejecucin 4. Ejercicios
5. Tarea
A partir de ahora
Proceso de Optimizacin
Que se busca con la optimizacin?
En teora:
Generar un plan de ejecucin que minimice los costos de la ejecucin de la consulta.
En la prctica:
Generar un plan de ejecucin que no est entre los peores
Proceso de Optimizacin
Cmo se mide el costo? Hay muchos factores que influyen, el principal: CANTIDAD DE ACCESOS A DISCO En qu se basa el optimizador para construir planes? Algoritmos implementados en el motor Informacin de:
Estadsticas Estructura fsica
Optimizacin
Optimizacin
Algebraica Basada en costos Mixta
Proceso de Optimizacin
Pasos que seguiremos en la prctica: Construir el rbol cannico
Generar un rbol optimizado aplicando heursticas (bsicamente optimizacin algebraica, con alguna idea de costos) Generar un plan de ejecucin optimizado definiendo algoritmos y dnde materializar (en base a costos), calculando el costo de ejecucin total
8
Un ejemplo ilustrativo
Ejemplo
Un ejemplo ilustrativo
10
Un ejemplo ilustrativo
11
Un ejemplo ilustrativo
Un rbol optimizado
12
Un ejemplo ilustrativo
13
Un ejemplo ilustrativo
Un plan de ejecucin Para el rbol optimizado
14
Un ejemplo ilustrativo
A modo ilustrativo: Un plan de ejecucin Para el rbol cannico
15
Un ejemplo ilustrativo
Comparando
Costo de ejecucin plan 1
Costo de ejecucin plan 2
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. Solo son necesarias las ultimas operaciones de una secuencia de operaciones de proyeccin, las dems pueden omitirse. Cascada de proyecciones. 4. Las selecciones pueden combinarse con los productos cartesianos y con las reuniones:
Reglas de Equivalencia
6. (a) Las operaciones de reunin natural son asociativas: (b) Las reuniones son asociativas en el sentido siguiente:
Reglas de Equivalencia
6. La operacin seleccin se distribuye por la operacin reunin bajo las dos condiciones siguientes: (a) Cuando todos los atributos de la condicin de seleccin 0 implican nicamente los atributos de una de las expresiones (por ejemplo E 1) que se estn uniendo.
(b) Cuando 1 implica nicamente los atributos de E 1 y 2 implica los atributos de E2.
rbol cannico
El rbol cannico se construye traduciendo literalmente la consulta SQL. PASO 1 Las relaciones del FROM sern nodos hoja. Si hubiese dos relaciones, ambos nodos tienen un padre en comn: un producto cartesiano Si hubiese tres relaciones, el producto cartesiano anterior y la nueva relacin tendrn un producto cartesiano como padre comn Si hubiese ms relaciones se sigue con este mecanismo. Notar que es un rbol sesgado a izquierda. Los sub rboles derechos tienen slo una relacin.
SELECT P.APELLIDO FROM MATERIA M, PROFESOR P, DICTA D WHERE D.ID-PROF=P.ID-PROF AND D.ID-MAT=M.ID-MAT;
X X
MATERIA M
DICTA D
PROFESOR P
rbol cannico
PASO 2 Las condiciones del WHERE se agregan como padre del subrbol de relaciones en un nodo con una seleccin Todas las condiciones van en un nico nodo
D.ID-PROF=P.ID-PROF
AND D.ID-MAT=M.ID-MAT
SELECT P.APELLIDO FROM MATERIA M, PROFESOR P, DICTA D WHERE D.ID-PROF=P.ID-PROF AND D.ID-MAT=M.ID-MAT;
X X
MATERIA M
DICTA D
PROFESOR P
rbol cannico
PASO 3 La lista de atributos del SELECT se agregan en la raz del rbol, en un nodo con una proyeccin Todas los atributos van en un nico nodo
Y ya est!!!!!!!!!!!!
P.APELLIDO
D.ID-PROF=P.ID-PROF
AND D.ID-MAT=M.ID-MAT
SELECT P.APELLIDO FROM MATERIA M, PROFESOR P, DICTA D WHERE D.ID-PROF=P.ID-PROF AND D.ID-MAT=M.ID-MAT;
X X
MATERIA M DICTA D
PROFESOR P
Optimizacin algebraica
Heursticas algebraicas ms comunes:
Descomponer selecciones conjuntivas Reordenar relaciones Bajar las selecciones Convertir productos cartesianos en joins Agregar proyecciones intermedias
SELECT P.APELLIDO FROM MATERIA M, PROFESOR P, DICTA D WHERE D.ID-PROF=P.ID-PROF AND D.ID-MAT=M.ID-MAT AND P.APELLIDO LIKE A% AND M.PUNTOS = 5; Se pide optimizar el rbol aplicando las heursticas algebraicas
P.APELLIDO
ARBOL CANONICO
D.ID-PROF=P.ID-PROF
AND D.ID-MAT=M.ID-MAT AND P.APELLIDO LIKE A% AND M.PUNTOS = 5
X X
MATERIA M DICTA D
PROFESOR P
P.APELLIDO LIKE A%
M.PUNTOS = 5
X X
MATERIA M
DICTA D
PROFESOR P
P.APELLIDO
M.PUNTOS = 5
X X
PROFESOR P
MATERIA M
DICTA D
P.APELLIDO
D.ID-PROF=P.ID-PROF
X
D.ID-MAT=M.ID-MAT
X
P.APELLIDO LIKE A%
PROFESOR P
M.PUNTOS = 5
MATERIA M
DICTA D
P.APELLIDO
|X|
P.APELLIDO LIKE A%
|X|
PROFESOR P DICTA D
M.PUNTOS = 5
MATERIA M
P.APELLIDO
|X|
D..ID-PROF
P.APELLIDO, P.ID-PROF
P.APELLIDO LIKE A%
|X|
M.ID-MAT
DICTA D
PROFESOR P
M.PUNTOS = 5
MATERIA M
SELECT P.APELLIDO FROM MATERIA M, PROFESOR P, DICTA D WHERE D.ID-PROF=P.ID-PROF AND D.ID-MAT=M.ID-MAT AND P.APELLIDO LIKE A% AND M.PUNTOS = 5;
Algunos casos donde se consideran adicionalmente criterios basados en costo Al reordenar relaciones, para elegir uno de los rdenes posibles Al bajar selecciones, para decidir hasta dnde bajarlas Al agregar proyecciones, para identificar dnde se justifica agregar
(continuar)
31
Referencias
Ramakrishnan/Gherke - Database Management Systems, 3rd Ed. Mc Graw-Hill, 2003 Caps. 9, 10 y 11 (para almacenamiento e ndices) Elmasri/Navathe Fundamentos de Sistemas de Bases de Datos, 3 Ed., PearsonAddison Wesley, 2002 - Cap. 18 (para procesamiento y optimizacin de consultas) SilberschatzKorthSudarshan - Database System Concepts, Fourth Edition, Mc GrawHill, 2003 Cap 11 y 12 (para almacenamiento e ndices) y Cap 13 y 14 (para procesamiento y optimizacin de consultas) Paper Query optimization - Yannis E. Ioannidis, ACM Computing Surveys, 1996 (http://www-2.dc.uba.ar/materias/bd/downloads/QueryOptimizationIoannidis.pdf)
Apunte de Procesamiento y Optimizacin de Consultas de la materia Base de DatosFCEyN-UBA, 2007 .(http://www2.dc.uba.ar/materias/bd/downloads/ApunteOptimizacion2Q07.pdf)