Optimizaciones

23
BASES DE DATOS Optimización de consultas distribuidas Optimization global de consultas Optimization local de consultas

description

tarea

Transcript of Optimizaciones

Page 1: Optimizaciones

BASES DE DATOSOptimización de consultas distribuidas

Optimization global de consultas Optimization local de consultas

Page 2: Optimizaciones

Optimización de consultasProceso de selección del plan de evaluación de las consultas más eficientes de entre las distintas

estrategias disponibles.Aspectos que intervienen en la optimización de

consultas:-Hallar una expresión a nivel de álgebra relacional

equivalente a la dada, pero más eficiente.-Determinar el algoritmo a utilizar para cada operación.-Necesidad de estimar el coste de las operaciones.-Información estadística en el catálogo. -Estimación de coste de resultados intermedios.

Page 3: Optimizaciones

El coste de una consulta se puede expresar:

• El tiempo de acceso a almacenamiento secundario.

• El tiempo de CPU para ejecutar la consulta.• El tiempo de comunicación (BD distribuidas).

Page 4: Optimizaciones

El tiempo de acceso dependerá:Del volumen de datos sobre el cuál debe

actuar (número y tamaño de las tulpas).De la organización física (existencia de

índices, agrupamientos, etc.) De su localización (memoria principal o

dispositivo externo).Del tamaño del buffer de memoria principal

que se dedica a almacenar las tuplas mientras se ejecutan los operaciones sobre ellas.

Page 5: Optimizaciones

EJEMPLO DE LA NECESIDAD DE OPTIMIZARTablas de “suministradores” (S) y

“pedidos”(P) con 100 suministradores y 10.000 pedidos.Consideraremos que sólo 50 tuplas de P

corresponden al artículo P2 (se hace pedido por artículo).

Consulta: “Obtener los nombres de los suministradores que nos sirven el artículo P2”.

Page 6: Optimizaciones

S (S#, NOMBRE,…)P (P#, S#, A#, UNIDADES,…)

SELECT DISTINCT S.NOMBREFROM S, P WHERE S.S#=P.S#AND P.A#=”P2”;

Page 7: Optimizaciones

El producto cartesiano S x P 100 x 10.000 = 1.000.000 de tuplas leídas y almacenadas en memoria intermedia (probablemente).

De la igualdad de join 1.000.000 leídas y 10.000 tuplas escritas en memoria intermedia.

Selección según la cláusula WHERE, 10.000 tuplas leídas, resultado reducido a 50 tuplas.

Realizar la proyección sobre S.NOMBRE, dando como

resultado un máximo de 50 tuplas.

Page 8: Optimizaciones

SELECT DISTINCT S.NOMBREFROM S, P WHERE S.S#=P.S# AND P.P#=”P2”;πS.NOMBRE(σA#=”P2”(σS.S#=P.S#(S x P)))

Page 9: Optimizaciones
Page 10: Optimizaciones

Equivalencia algebraica:

Seleccionar en P las tuplas de la pieza P2.Lectura de 10.000 tuplas, resultado: 50 tuplas.

JOIN de la tabla anterior con la tabla S Lectura de 100 tuplas. Prod. Cart.=100x50=

5000 tuplas. Resultado: 50 tuplas.

Proyección sobre S.NOMBRE. Resultado máximo de 50 tuplas.

Page 11: Optimizaciones

SELECT DISTINCT S.NOMBREFROM S, P WHERE S.S#=P.S# AND

P.A#=”P2”;πS.NOMBRE(σS.S#=P.S#(S x (σA#=”P2”(P))))

Page 12: Optimizaciones

Si consideramos el “rendimiento” como el número de operaciones de E/S de tuplas: El segundo procedimiento es unas 300 veces mejor, ya que el primero realiza 3.010.000 operaciones de E/S frente a 10.100 del segundo.

Page 13: Optimizaciones

OPTIMIZACIÓN DE CONSULTASOBJETIVO: Reducir la cantidad de transferencia de datos

por la red. Aplicar una estrategia local de optimización.

Page 14: Optimizaciones

Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una estrategia de ejecución para la consulta cercana a la óptima.

La estrategia de ejecución para una consulta distribuida puede ser descrita con los operadores del álgebra relacional y con primitivas de comunicación para transferir datos entre nodos. Para encontrar una buena transformación se consideran las características de los fragmentos, tales como, sus cardinalidades.

Page 15: Optimizaciones

Un aspecto importante de la optimización de consultas es el ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios órdenes de magnitud.

La salida de la capa de optimización global es una consulta algebraica optimizada con operación de comunicación incluidas sobre los fragmentos. 

Page 16: Optimizaciones

EJEMPLO (para la realización de estrategia de optimización global):

Page 17: Optimizaciones
Page 18: Optimizaciones
Page 19: Optimizaciones

Optimización Local de ConsultasEl trabajo de la última capa se efectúa en todos

los nodos con fragmentos involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es optimizada usando el esquema local del nodo.

Hasta este momento, se pueden eligen los algoritmos para realizar las operaciones relacionales. La optimización local utiliza los algoritmos de sistemas centralizados.

Page 20: Optimizaciones

La entrada al optimizador consta de la consulta, el esquema de la base de datos(definiciones de tabla e índice) y las estadísticas de base de datos. Una instrucción SELECTdefine únicamente los siguientes elementos:

El formato del conjunto de resultados. Las tablas que contienen los datos de origen.Esto se especifica en la cláusula FROM.

Cómo se relacionan lógicamente las tablas para la instrucción SELECT.

Page 21: Optimizaciones

define en las especificaciones de combinación, que pueden aparecer en la cláusulaWHERE o en una cláusula ONE que sigue a FROM.

Las condiciones que deben cumplir las filas de las tablas de origen para satisfacer los requisitos de la instrucción SELECT. Estas condiciones se especifican en lascláusulas WHERE y HAVING.Un plan de ejecución de consulta es una definición de los siguientes elementos:

Page 22: Optimizaciones

La secuencia en la que se tiene acceso a las tablas de origen. Normalmente, hay muchas secuencias diferentes en las que el servidor de la base dedatos puede tener acceso a las tablas base para generar el conjunto de resultados.Por ejemplo, si la instrucción SELECT hace referencia a tres tablas, el servidor de la base de datos podría tener acceso primero a TablaA, utilizar datos de TablaA paraextraer las filas que coincidan con las de TablaB y, finalmente, utilizar datos deTablaB para extraer datos de TablaC. Las demás secuencias en las que el servidor

Page 23: Optimizaciones

 de base de datos podría tener acceso a las tablas son:TablaC, TablaB, TablaATablaB, TablaA, TablaCTablaB, TablaC, TablaATablaC, TablaA, TablaB

Los métodos que se utilizan para extraer los datos de cada tabla.Si se necesitan todas las filas de una tabla, el servidor de la base de datos puedeomitir los índices y realizar un recorrido de la tabla.