Guía para La Optimización de Consultas
Guía para La Optimización de Consultas
Guía para La Optimización de Consultas
MORENO
FACULTAD DE CIENCIAS EXACTAS Y
TECNOLOGIA
Carrera de Ingeniería Informática
Proyecto de Grado
“Guía para la Optimización de Consultas
en una Base de Datos Relacional Utilizando
SQL”
Proyecto de Grado para optar al Título de:
Licenciatura en Ingeniería Informática
Antecedentes
Justificacion
Objetivo principal.
Objetivos • Diseñar una Guía para la Optimización de
Consultas en una Base de Datos Relacional
utilizando SQL .
Objetivos Específicos.
– Describir las Fases del Proceso de Optimización de
Consultas.
– Detallar los componentes y funcionamiento de un
Optimizador de Consultas.
– Exponer el contenido de un Plan de Ejecución.
– Detallar las reglas para evitar formular Consultas SQL
costosas.
– Detallar las reglas para Crear y Gestionar índices.
– Explicar el contenido de las Estadísticas del Catalogo
de Base de Datos.
Parte II - Fundamentos Teóricos
04/26/10 07:13 PM
Parte II - Fundamentos Teóricos
Modelo
Relacional
Lenguajes Una Relación R , es representada como una Tabla.
Relacional
Sistema de Grado (n) Atributo, papel que desempeña D en R.
Base de Datos
Cardinalidad (m).
El Proceso de
Optimización A1 …
ESQUEMAAn
de Consultas
El Optimizador … IA
de Consultas
N C Tupla, conjunto de valores t1…tm,
V1 … TA Vn
NS
I… ti=(v1,…,vn) / v1 ∈ A1 ∧… ∧vn ∈ An
Diferencia (-)
Operaciones adicionales
Intersección (∩) Estas operaciones pueden
ser expresadas sobre la
Reunión con predicado(|X|p)
base de las primeras cinco
Reunión natural (|X|)
División (÷ )
Parte II - Fundamentos Teóricos
Modelo
Relacional
Lenguajes
Expresión Algebraica. Las operaciones del Algebra Relacional,
Relacional son formuladas dentro de una Expresión Algebraica; las mismas que
Sistema de
Base de Datos
especifican la manera en que los datos deben ser recuperados de las
El Proceso de Relaciones.
Optimización
de Consultas
El Optimizador
de Consultas
A B C
aaa 111aa
R1bbb 222 213
X Y
El resultado de una Expresión
R2aa uu Algebraica es uma nueva Relación
bb ss
Parte II - Fundamentos Teóricos
Modelo
Relacional
Árbol Algebraico. Las Expresiones Algebraicas, pueden ser
Lenguajes
Relacional representada en su totalidad en un Árbol Algebraico.
Sistema de
Base de Datos
El Proceso de
Π A,B,X (σ X=“aa” (R1XR2))
Optimización
Π A,B,X
de Consultas
El Optimizador
3ro. Proyectar A,B,X
de Consultas
Lectura de abajo
hacia arriba X 1ro. Producto Cartesiano
R1 R2
Herramienta Básica utilizada por los SGBD.
Parte II - Fundamentos Teóricos
Modelo
Relacional Lenguaje SQL (Structure Query Languaje). Implementado
Lenguajes
Relacional
en la mayoría de los SGBD, es un lenguaje NO
Sistema de PROCEDIMENTAL, al igual que el Algebra Relacional opera sobre
Base de Datos
Relaciones
El Proceso de
Optimización La mayoría de las operaciones del Algebra relacional pueden ser
de Consultas
El Optimizador
formuladas en el SQL.
de Consultas
La Estructura Básica de una expresión en SQL esta compuesta de
tres cláusulas:
SELECT A1, A2,...,An // Que atributos
FROM r1, r2,...,rm // De que relaciones
WHERE P // Que tuplas
Modelo
Relacional Sistema de Gestión de Bases de Datos (SGBD). Es el
Lenguajes
Relacional conjunto de Programas que permiten: Definir y
Sistema de
Base de Datos
Manipular la información que contienen las Bases de
El Proceso de
Optimización
Datos, entre otras tareas que realiza como ser:
de Consultas Autorizaciones, Seguridad, Recuperación
El Optimizador
de Consultas
Parte II - Fundamentos Teóricos
Modelo
Programa de
Relacional Aplicación
Compilador
Lenguajes
LMD
Relacional Consulta de Usaurio Esquema de
Sistema de BD
Base de Datos Procesador
Lenguaje SQL de Compilador
El Proceso de
Optimización Consultas LDD
de Consultas
El Optimizador
de Consultas Tabla de
Autorizacion Gestor Diccionario
De de Datos
Control de Base de Datos
Acceso
Adm. de Accesos
Concurrente Gestor
de
Archivos
Datos + Index
Parte II - Fundamentos Teóricos
Modelo
Relacional El Proceso de Optimización de Consultas
Lenguajes
Relacional
Consulta Traductor
Sistema de Árbol
Base de Datos SQL (Parser) Relacional
El Proceso de
Optimización Reglas de Transformación de Expresiones
de Consultas
El Optimizador Estadísticas de las Relaciones. Diccionario
de Consultas
Medidas de Costos. de Datos
Datos + Index
Consideracion
es Previa
Consideraciones para el uso de Guía.
Descripción de
los Pasos de
La Guía debe ser vista como una herramienta mas en el proceso de
Guía Optimización de Consultas.
Aplicación de
la Guía
Propuesta La Guía es una herramienta de propósito general, en algunos casos
puede ser muy compleja o muy simple.
NO ¿Ajustar y/o SI
Crear
Índices?
Paso 3
Crear INDICES?
Crear y Gestionar Índices
Ajustar los Existentes
Paso 1
Generar el Plan de Ejecución
NO ¿Ajustar el SI
Esquema de
BD Desnormalizar
Paso 4
Ajustar el Esquema de la BD Adicionar Atributos Derivados
Paso 1 Contin
Generar el Plan de Ejecución
ua
Entre otros, el Plan de Ejecución muestra el orden lógico en la cual se
Parte
acceden a las tablas y el método III – Propuesta
de acceso y Aplicación
que utiliza para leer cada tabla . de la Guía
Consideracion
es Previa
Descripción de
Full Table Scan Vs. Index Scan
los Pasos de
Guía
Acceso Full Table Scan Acceso Index Scan
Paso 1.
200.00 1.20
Paso 2. 180.00
160.00 1.00
Paso 3. 140.00
Tiempo (min)
120.00 0.80
Tiempo (min)
Paso 4. 100.00
0.60
80.00
Aplicación de 60.00 0.40
la Guía 40.00
20.00 0.20
Propuesta 0.00
0.00
0
00
00
00
0
0
00
0
00
00
00
00
n1
00
00
00
00
00
00
00
n5
00
00
00
00
00
00
00
00
00
00
n1
00
00
n5
00
00
00
n5
n1
n2
n5
00
00
n5
n1
n2
n1
n2
n5
n1
n2
Cantidad de Tuplas Cantidad de Tuplas
la Guía ( customer_num=101)
Propuesta
ORACLE 1. SELECT statement La línea dos indica que se especifica que
el acceso es vía índice y además
2. TABLE ACCES BY INDEX ROWID utilizando el filtro customer_num=101, la
customer_num=101 línea tres indica que el índice utilizado es
3. INDEX UNIQUE SCAN idx_customer el idx_customer.
Volver
Parte III – Propuesta y Aplicación de la Guía
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa
Reglas para la Desnormalización de Relaciones.
Descripción de
los Pasos de
Guía
• R1. Introducir atributos Derivados.
Paso 1.
• R2. Combinar Relaciones de 1:1
Paso 2.
Paso 3. • R3. Duplicar Atributos no Clave en Relaciones de 1:N para
Paso 4.
Reducir los Joins.
Aplicación de
la Guía
Propuesta • R4. Tablas de Referencias.
• R5. Duplicar Llaves Foráneas en Relaciones de 1:N para
Reducir los Joins.
• R6. Duplicar Atributos en Relaciones de N:M para Reducir los
Joins.
• R7. Introducir Grupos Repetitivos.
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa
Introducir atributos Derivados.
Descripción de
los Pasos de
Guía
Paso 1.
Paso 2.
Paso 3.
Paso 4.
Aplicación de
la Guía
Propuesta
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa Duplicar Atributos no Clave en Relaciones de 1:N para Reducir
Descripción de
los Pasos de
los Joins.
Guía
Paso 1.
Paso 2.
Paso 3.
Paso 4.
Aplicación de
la Guía
Propuesta
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa Tabla de Referencia.
Descripción de
los Pasos de
Guía
Paso 1.
Paso 2.
Paso 3.
Paso 4.
Aplicación de
la Guía
Propuesta
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa Duplicar Llaves Foráneas en Relaciones de 1:N para Reducir los
Descripción de
los Pasos de
Joins.
Guía
Paso 1.
Paso 2.
Paso 3.
Paso 4.
Aplicación de
la Guía
Propuesta
Volver
Parte III – Propuesta y Aplicación de la Guía
Consideracion
es Previa Duplicar Atributos en Relaciones de N:M para Reducir los Joins.
Descripción de
los Pasos de
Guía
Paso 1.
Paso 2.
Paso 3.
Paso 4.
Aplicación de
la Guía
Propuesta
Volver
Parte III – Propuesta y Aplicación de la Guía
Resultado.
Tiempo: 0.01 min.
Método de Acceso: INDEX PATH
Parte III – Propuesta y Aplicación de la Guía
Conclusiones
Recomendacione
Los pasos de la presente Guía proporcionan un marco de
s.
referencia para poder encarar el problema de rendimiento
de consultas SQL costosas.
Los pasos de la Guía pueden ser utilizado en cualquier
momento, porque el Proceso de Optimización es:
Dinámico, no siempre se aplica la misma solución.
Continuo, no tiene una fecha de finalización.
Impredecible, no se sabe con certeza cuando se
presentará un problema de rendimiento de consulta.
Debe primar el criterio y la experiencia para el uso de la
presente Guía.
Recomendaciones
Conclusiones
Recomendacione
El bajo rendimiento de las consultas no siempre es
s.
atribuible a la forma como fue formulada la consulta y/o
la falta índice. Otros factores pueden contribuir:
•Capacidad de Hardware reducida,
•Comunicaciones deficientes,
Modelo
Relacional
Lenguajes Estadísticas de la Base de Datos.
Relacional
Sistema de
Base de Datos
El Proceso de
Optimización
de Consultas
El Optimizador
de Consultas
Volver
Parte II - Fundamentos Teóricos
Modelo
Relacional
Medidas de Costos.
Lenguajes
Relacional
El costo se mide en función de la cantidad de CPU
Sistema de utilizada y de la cantidad de páginas de disco
Base de Datos
El Proceso de
rescatadas.
Optimización
de Consultas
El Optimizador
b.1. Búsqueda Lineal (Full Table Scan o Table Scan)
de Consultas
La mas costosa
b.2. Índice Primario, igualdad en la clave.
La mas eficiente
+/- eficiente
Volver
Parte II - Fundamentos Teóricos
Modelo
Relacional
Reglas de Transformación de Expresiones.
Lenguajes Una regla de equivalencia permite transformar una expresion E1
Relacional
en la otra E2, mientras se preserva la equivalencia .
Sistema de
Base de Datos
El Proceso de
Optimización
de Consultas
El Optimizador
de Consultas
Volver
Parte II - Fundamentos Teóricos
Modelo
Relacional
Selección de Ordenes JOIN.
Lenguajes
Relacional
La cláusula FROM no dicta el orden en el cual las tablas deben ser
Sistema de procesadas .
Base de Datos
…FROM Tabla1, Tabla2,Tablan
El Proceso de
Optimización
de Consultas Se evalúa todas las permutaciones razonables y se estima el costo
El Optimizador
de Consultas
total en términos de tiempo de E/S.
Número de Tablas N! Método Optimizado Ahorro
Volver
Parte II - Fundamentos Teóricos
Modelo
Relacional
Selección del Plan de Ejecución.
Lenguajes
Relacional
Sistema de
Base de Datos
El Proceso de
Optimización
de Consultas
…
El Optimizador
de Consultas
Volver