SlideShare ist ein Scribd-Unternehmen logo
1 von 23
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 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.
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).
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.
EJEMPLO DE LA NECESIDAD DE
OPTIMIZAR
 Tablas 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”.
S (S#, NOMBRE,…)
P (P#, S#, A#, UNIDADES,…)

SELECT DISTINCT S.NOMBRE
FROM S, P
WHERE 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
    (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.
 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 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.
 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 veces mejor, ya que el
 primero realiza 3.010.000 operaciones de E/S frente a
 10.100 del segundo.
OPTIMIZACIÓN DE CONSULTAS
OBJETIVO:
 Reducir la cantidad de transferencia de datos por la red.
 Aplicar una estrategia local de optimización.
 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.
 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.
EJEMPLO (para la realización de estrategia
de optimización global):
 Optimización Local de Consultas
El 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.
 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.
 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:
 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
 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.

Weitere ähnliche Inhalte

Andere mochten auch

Consultas de selección y parametros
Consultas de selección y parametrosConsultas de selección y parametros
Consultas de selección y parametrosyiyisbonilla
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml selectOrlando Verdugo
 
Introducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónM.c. Omar Jasso
 
Tipo de consulta microsoft access
Tipo de consulta microsoft accessTipo de consulta microsoft access
Tipo de consulta microsoft accessleonardo3212
 

Andere mochten auch (9)

Consultas de selección y parametros
Consultas de selección y parametrosConsultas de selección y parametros
Consultas de selección y parametros
 
Tema5 consultas avz
Tema5   consultas avzTema5   consultas avz
Tema5 consultas avz
 
Sql
SqlSql
Sql
 
Consulta de mysql
Consulta de mysqlConsulta de mysql
Consulta de mysql
 
Unidad vi vii dml select
Unidad vi vii dml selectUnidad vi vii dml select
Unidad vi vii dml select
 
Introducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selecciónIntroducción a sql consultas y criterios de selección
Introducción a sql consultas y criterios de selección
 
Tipo de consulta microsoft access
Tipo de consulta microsoft accessTipo de consulta microsoft access
Tipo de consulta microsoft access
 
Consultas en sql básico
Consultas en sql básicoConsultas en sql básico
Consultas en sql básico
 
Consultas base de datos en SQL
Consultas base de datos en SQLConsultas base de datos en SQL
Consultas base de datos en SQL
 

Ähnlich wie Optimizaciones

Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizajegviera
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosHarold Perez
 
Práctica sql server [fbdr]
Práctica sql server [fbdr]Práctica sql server [fbdr]
Práctica sql server [fbdr]TelexFREE
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNSergio Perez
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNSergio Perez
 
Manual sql
Manual sqlManual sql
Manual sqlHicar
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdLuis Jherry
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Luis Jherry
 
informacion sobre blog datos y sql
informacion sobre blog datos y sqlinformacion sobre blog datos y sql
informacion sobre blog datos y sqldanie12angie
 
Educación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar deEducación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar dedanie12angie
 
Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De ConsultasOto Tumax
 
unidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.pptunidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.pptAnaHolgado5
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizajegviera
 

Ähnlich wie Optimizaciones (20)

Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Práctica sql server [fbdr]
Práctica sql server [fbdr]Práctica sql server [fbdr]
Práctica sql server [fbdr]
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
MANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓNMANEJO DE SENTENCIAS DE RECUPERACIÓN
MANEJO DE SENTENCIAS DE RECUPERACIÓN
 
Manual sql
Manual sqlManual sql
Manual sql
 
Fundamentos sql
Fundamentos sqlFundamentos sql
Fundamentos sql
 
Diseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bdDiseño físico y rendimiento de la bd
Diseño físico y rendimiento de la bd
 
Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2Diseño físico y rendimiento de la bd2
Diseño físico y rendimiento de la bd2
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
informacion sobre blog datos y sql
informacion sobre blog datos y sqlinformacion sobre blog datos y sql
informacion sobre blog datos y sql
 
Tutorial sql
Tutorial sqlTutorial sql
Tutorial sql
 
Educación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar deEducación para el desarrollo humano apartar de
Educación para el desarrollo humano apartar de
 
ResultSet
ResultSetResultSet
ResultSet
 
Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De Consultas
 
unidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.pptunidad13_Procesamiento_de_consultas1.ppt
unidad13_Procesamiento_de_consultas1.ppt
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Consultas sql
Consultas sqlConsultas sql
Consultas sql
 
Objeto De Aprendizaje
Objeto De AprendizajeObjeto De Aprendizaje
Objeto De Aprendizaje
 

Optimizaciones

  • 1. Optimización de consultas distribuidas Optimization global de consultas Optimization local de consultas
  • 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. 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. 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. EJEMPLO DE LA NECESIDAD DE OPTIMIZAR  Tablas 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”.
  • 6. S (S#, NOMBRE,…) P (P#, S#, A#, UNIDADES,…) SELECT DISTINCT S.NOMBRE FROM S, P WHERE S.S#=P.S# AND P.A#=”P2”;
  • 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.  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.
  • 10. 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.
  • 11.  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))))
  • 12.  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.
  • 13. OPTIMIZACIÓN DE CONSULTAS OBJETIVO:  Reducir la cantidad de transferencia de datos por la red.  Aplicar una estrategia local de optimización.
  • 14.  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.
  • 15.  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.
  • 16. EJEMPLO (para la realización de estrategia de optimización global):
  • 17.
  • 18.
  • 19.  Optimización Local de Consultas El 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.
  • 20.  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.
  • 21.  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:
  • 22.  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
  • 23.  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.