Your SlideShare is downloading. ×
0
Optimización de consultas distribuidas     Optimization global de consultas       Optimization local de consultas
Optimización de consultas Proceso de selección del plan de evaluación de las  consultas más eficientes de entre las disti...
El coste de una consulta se puede expresar:• El tiempo de acceso a almacenamiento secundario.• El tiempo de CPU para ejecu...
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 or...
EJEMPLO DE LA NECESIDAD DEOPTIMIZAR Tablas de “suministradores” (S) y “pedidos”(P) con 100suministradores y 10.000 pedido...
S (S#, NOMBRE,…)P (P#, S#, A#, UNIDADES,…)SELECT DISTINCT S.NOMBREFROM S, PWHERE S.S#=P.S#AND P.A#=”P2”;
 El producto cartesiano S x P 100 x 10.000 = 1.000.000    de tuplas leídas y almacenadas en memoria intermedia    (probab...
 SELECT DISTINCT S.NOMBRE FROM S, P WHERE S.S#=P.S# AND P.P#=”P2”; πS.NOMBRE (σA#=”P2” (σS.S#=P.S# (S x P)))
Equivalencia algebraica: Seleccionar en P las tuplas de la pieza P2.Lectura de 10.000 tuplas, resultado: 50 tuplas. JOIN...
 SELECT DISTINCT S.NOMBRE FROM S, P WHERE S.S#=P.S# AND P.A#=”P2”; πS.NOMBRE (σS.S#=P.S# (S x (σA#=”P2” (P))))
 Si consideramos el “rendimiento” como el número de operaciones de E/S de tuplas: El segundo procedimiento es unas 300 ve...
OPTIMIZACIÓN DE CONSULTASOBJETIVO: Reducir la cantidad de transferencia de datos por la red. Aplicar una estrategia loca...
 Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una estrategia de ejecución para la co...
 Un aspecto importante de la optimización de consultas es el ordenamiento de juntas, dado que algunas permutaciones de ju...
EJEMPLO (para la realización de estrategiade optimización global):
 Optimización Local de ConsultasEl trabajo de la última capa se efectúa en todos los nodos  con fragmentos involucrados e...
 La entrada al optimizador consta de la consulta, el esquema  de la base de datos(definiciones de tabla e índice) y las  ...
 define en las especificaciones de combinación, que pueden aparecer en la cláusulaWHERE o en una cláusula ONE que sigue a...
 La secuencia en la que se tiene acceso a las tablas de ori  gen. Normalmente, hay muchas secuencias diferentes  en las q...
 de base de datos podría tener acceso a las tablas son:T ablaC, TablaB, TablaATablaB, TablaA, TablaCTablaB, T ablaC, Tabl...
Optimizaciones
Optimizaciones
Optimizaciones
Upcoming SlideShare
Loading in...5
×

Optimizaciones

386

Published on

tarea

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
386
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Optimizaciones "

  1. 1. Optimización de consultas distribuidas Optimization global de consultas Optimization local de consultas
  2. 2. Optimización de consultas Proceso 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.
  3. 3. 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).
  4. 4. 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.
  5. 5. EJEMPLO DE LA NECESIDAD DEOPTIMIZAR Tablas de “suministradores” (S) y “pedidos”(P) con 100suministradores 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”.
  6. 6. S (S#, NOMBRE,…)P (P#, S#, A#, UNIDADES,…)SELECT DISTINCT S.NOMBREFROM S, PWHERE S.S#=P.S#AND P.A#=”P2”;
  7. 7.  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.
  8. 8.  SELECT DISTINCT S.NOMBRE FROM S, P WHERE S.S#=P.S# AND P.P#=”P2”; πS.NOMBRE (σA#=”P2” (σS.S#=P.S# (S x P)))
  9. 9. 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 SLectura de 100 tuplas. Prod. Cart.=100x50= 5000 tuplas. Resultado: 50 tuplas. Proyección sobre S.NOMBRE.Resultado máximo de 50 tuplas.
  10. 10.  SELECT DISTINCT S.NOMBRE FROM S, P WHERE S.S#=P.S# AND P.A#=”P2”; πS.NOMBRE (σS.S#=P.S# (S x (σA#=”P2” (P))))
  11. 11.  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.
  12. 12. OPTIMIZACIÓN DE CONSULTASOBJETIVO: Reducir la cantidad de transferencia de datos por la red. Aplicar una estrategia local de optimización.
  13. 13.  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.
  14. 14.  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.
  15. 15. EJEMPLO (para la realización de estrategiade optimización global):
  16. 16.  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.
  17. 17.  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.
  18. 18.  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:
  19. 19.  La secuencia en la que se tiene acceso a las tablas de ori gen. 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
  20. 20.  de base de datos podría tener acceso a las tablas son:T ablaC, TablaB, TablaATablaB, TablaA, TablaCTablaB, T ablaC, TablaATablaC, TablaA, TablaB Los métodos que se utilizan para extraer los datos de c ada 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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×