Vous êtes sur la page 1sur 32

ADMINISTRACION DE BASE DE DATOS

Ing. Armando Caballero Alvarado acaballeroa@upao.edu.pe www.acaballeroa.upao.edu.pe

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

Introduccin: Arquitectura de un DBMS


Dnde estamos parados?
Modelizacin Normalizacin Diseo fsico Hasta ahora

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

Hay un compromiso entre el esfuerzo de optimizar y el costo de la consulta


5

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

Reglas Heursticas: rbol o grafo


6

Optimizacin
Optimizacin
Algebraica Basada en costos Mixta

En la prctica de la materia utilizaremos un modelo simplificado


7

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

A esto nos referimos cuando hablamos de no elegir los peores !!!!!!!


16

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:

5. Las operaciones de reunin son conmutativas:

Reglas de Equivalencia
6. (a) Las operaciones de reunin natural son asociativas: (b) Las reuniones son asociativas en el sentido siguiente:

Donde 2 implica solo atributos de E2 y E3.

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

Para aplicar heursticas partiremos del rbol cannico


23

Ejemplo Optimizacin Algebraica


Dados MATERIA (ID-MAT, NOMBRE-MAT, PUNTOS, FECHA-CREACION) PROFESOR (ID-PROF, APELLIDO, NOMBRE, DOMICILIO, NOMBRE-TITULO) DICTA (ID-PROF, ID-MAT, FECHA-DESDE)
Y la consulta:

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

Ejemplo Optimizacin Algebraica


Descomponer selecciones conjuntivas
Se descomponen en mltiples nodos de seleccin, uno por cada trmino.

P.APELLIDO D.ID-PROF=P.ID-PROF D.ID-MAT=M.ID-MAT

P.APELLIDO LIKE A%
M.PUNTOS = 5
X X
MATERIA M

DICTA D

PROFESOR P

Ejemplo Optimizacin Algebraica


Reordenar relaciones
Reordenar relaciones para que a ambos lados de cada producto cartesiano queden relaciones sobre las que hay una relacin de unin

P.APELLIDO

D.ID-PROF=P.ID-PROF D.ID-MAT=M.ID-MAT P.APELLIDO LIKE A%


Ac hay problema

M.PUNTOS = 5
X X
PROFESOR P

rdenes posibles: MDP / DMP / PDM / DPM

MATERIA M

DICTA D

Ejemplo Optimizacin Algebraica


Bajar las selecciones
Se trata de bajar los nodos de seleccin lo ms cercano a las hojas que se pueda.

Este no se puede bajar ms

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

Ejemplo Optimizacin Algebraica


Convertir productos cartesianos en joins
Los nodos de productos cartesianos con un nodo seleccin como padre se fusionan en una junta cuando la condicin de seleccin determina un join de las dos subrelaciones hijas del producto

P.APELLIDO
|X|

P.APELLIDO LIKE A%
|X|
PROFESOR P DICTA D

M.PUNTOS = 5
MATERIA M

Ejemplo Optimizacin Algebraica


Agregar proyecciones intermedias
Se agregan proyecciones intermedias de manera de reducir el tamao de las tuplas que suben. Un caso tpico donde agregaremos proyecciones es antes de hacer una materializacin. Por ahora, las agregaremos entre las selecciones y las juntas que tienen como padre, y entre dos juntas consecutivas.

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

Ejemplo Optimizacin Algebraica


Con los pasos que hicimos, construimos el rbol optimizado para la consulta
ARBOL OPTIMIZADO

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;

Algo ms sobre las heursticas


En el ejemplo anterior, usamos criterios solamente algebraicos para construir el rbol optimizado. Una vez que veamos algoritmos y costos, tambin consideraremos criterios basados en costo (lo veremos en las clases siguientes)

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)

Este material fue elaborado por Sergio DArrigo

Vous aimerez peut-être aussi