Opcons

Páginas: 21 (5206 palabras) Publicado: 12 de octubre de 2010
OPTIMIZACION DE CONSULTAS
INTRODUCCIÓN 2

2. EJEMPLO DE LA PROBLEMÁTICA DE OPTIMIZACIÓN.

3

3. ¿DONDE INCIDE LA OPTIMIZACIÓN?.

4

4. EL PROCESO DE OPTIMIZACIÓN. 4.1. 4.2. 4.2.1. 4.3. 4.4. REPRESENTACIÓN INTERNA DE CONSULTAS. CONVERSIÓN A FORMA CANÓNICA. REGLAS DE TRANSFORMACIÓN. ELECCIÓN DE PROCEDIMIENTOS DE BAJO NIVEL. GENERACIÓN Y ELECCIÓN DE PLANES DE CONSULTA.

4 5 6 6 13 14 145. OTRAS CUESTIONES EN OPTIMIZACIÓN DE CONSULTAS.

6. ALGUNOS OPTIMIZADORES COMERCIALES. 6.1. 6.2. 6.3. 6.3.1. SYSTEM R DB2. INGRES. INGRES ACADÉMICO.

14 15 17 18 18 21 21 21 25 27

7. DISEÑO ORIENTADO A LAS PRESTACIONES. 7.1. 7.2. 7.3. INTRODUCCIÓN. DESNORMALIZACIÓN. PARTICIONAMIENTO DE RELACIONES.

BIBLIOGRAFIA

1

Introducción
La optimización de consultas es el proceso por elcual se pretende mejorar los tiempos de respuesta en un sistema de gestión de bases de datos relacional. Hay que tener en cuenta que los lenguajes de consulta relacionales son no procedimentales, es decir, que el usuario solo indica cual es el resultado que desea obtener y no el camino de acceso en la base de datos para llegar a dicho resultado. Esta “navegación automática” permite el desarrollode sistemas que evalúen y mejoren las sentencias de consulta realizadas por los usuarios. Debido a que esta posibilidad de mejora de especificación de consultas sólo es posible en los SGBDR, algunos autores consideran que un sistema de bases de datos sólo se puede considerar relacional si tienen optimizador. Hay que tener en cuenta que el proceso de optimización tiene que evaluar no solamente cualconsulta es algebraicamente más correcta, sino también si dicha consulta no sobrecarga los recursos del sistema. Por tanto la palabra “optimizador” no sería la más correcta (aunque es la mas extendida) sino “planificador de consultas”.

2

2.

Ejemplo de la problemática de optimización.

Para dar una idea de la necesidad y el potencial de la optimización en los SGBDR tomaremos comoejemplo las tablas S y SP de “suministradores” y “pedidos” con 100 suministradores y 10000 pedidos y la consulta “obtener los nombres de los suministradores que sirven la pieza P2”. Consideraremos que solo 50 tuplas de SP corresponden a la pieza P2. Una posible solución SQL sería:

SELECT DISTINCT S.NOMBRE FROM S, SP WHERE S.S#=SP.S# AND SP.P#=”P2”; Los pasos a seguir por un sistema sin optimizadorserían: 1.Calcular el producto cartesianos de S y SP. Este paso implica 100 lecturas de cada una de las 10000 tuplas de SP, en total 1000000 lecturas de tuplas que, probablemente, no quepan en memoria y por tanto implique 1000000 escrituras de tuplas. 2. Realizar la selección según la condición especificada en la cláusula WHERE, lo que implica la lectura de 1000000 tuplas, dejando el resultadoreducido a 50 tuplas, que en este caso cabrían en memoria. 3. Realizar la proyección sobre S.NOMBRE, dando como resultado un máximo de 50 tuplas. Otro procedimiento para la misma consulta, es decir con el mismo resultado o algebraicamente equivalente sería: 1. Seleccionar en SP las tuplas de la pieza P2. Esto implicaría la lectura de 10000 tuplas, pero produce una tabla de sólo 50 tuplas, que puedecaber en memoria principal.

2. Realizar el JOIN de la tabla anterior con la tabla S mediante S#. Esto implica la lectura de sólo 100 tuplas. El resultado contiene 50 tuplas que siguen en memoria principal. 3. Proyección sobre S.NOMBRE con un resultado de un máximo de 50 tuplas. Si consideramos “rendimiento” como en número de operaciones de E/S de tuplas, el segundo procedimiento es unas 300 vecesmejor que el primero, ya que el primero realiza 3000000 operaciones de E/S frente a 10100 del segundo.

3

3.

¿Donde incide la optimización?.

Los procesos de optimización tienen que tener en cuenta el funcionamiento global de la Base de Datos y por tanto, una posible optimización de una consulta tendrá que contar con la sobrecarga que pueda producir al sistema y no solo con la...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS