Download Procesamiento y Optimización de Consultas - LSI

Document related concepts

Cálculo relacional basado en tuplas wikipedia , lookup

Cálculo relacional wikipedia , lookup

Transcript
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y
Optimización de Consultas
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
Grupo de Ingeniería del Software y Bases de Datos
Departamento de Lenguajes y Sistemas Informáticos
© Diseño de Amador Durán Toro, 2011
Universidad de Sevilla
diciembre 2011
Procesamiento y Optimización de Consultas
• Objetivos de este tema
– Conocer las fases del procesado de consultas en
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
bases de datos relacionales.
– Conocer los principales factores que afectan a la
eficiencia de una consulta en bases de datos
relacionales.
– Ser capaz de escribir consultas eficientes a bases
de datos relacionales aplicando simplificación de
expresiones, equivalencias de álgebra relacional y
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
1
© Diseño de Amador Durán Toro, 2011
heurísticas.
1
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Fases habituales del procesado de consultas
Esquema
Base Datos
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
Consulta
SQL
Análisis y
Traducción
Consulta
AR
Estadísticas
Base Datos
Optimización
Datos
Ejecución
diciembre 2011
Resultado
Introducción a la Ingeniería del Software y a los Sistemas de Información
2
© Diseño de Amador Durán Toro, 2011
Plan de
ejecución
Procesamiento y Optimización de Consultas
• Ejemplo de procesado de consulta
– Supongamos una base de datos relacional sobre
1. Procesado de
consultas
vinos, productores y cosechas donde las
2. Coste de una
consulta
estadísticas son las siguientes:
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
• Vinos: 500 tuplas
• Cosechas: 1.200 tuplas
• select cantidad > 100 ( Cosechas ): 100 tuplas
Vinos
Productores
vid
PK
vnombre
vendimia
graduación
diciembre 2011
IISSI
pid
pnombre
región
Cosechas
PK
cid
FK1
FK2
vid
pid
año
cantidad
Introducción a la Ingeniería del Software y a los Sistemas de Información
3
© Diseño de Amador Durán Toro, 2011
PK
2
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Ejemplo de procesado de consulta
– Queremos ejecutar la siguiente consulta en SQL:
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
select V.vnombre from V Vinos, C Cosechas
where V.vid = C.vid and C.cantidad > 100;
– El primer paso es traducirla a álgebra relacional.
– Opción 1: join, selección, proyección
project vnombre ( select cantidad > 100 ( V njoin C ) )
1.200 tuplas
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
4
© Diseño de Amador Durán Toro, 2011
100 tuplas
Procesamiento y Optimización de Consultas
• Ejemplo de procesado de consulta
– Queremos ejecutar la siguiente consulta en SQL:
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
select V.vnombre from V Vinos, C Cosechas
where V.vid = C.vid and C.cantidad > 100;
– El primer paso es traducirla a álgebra relacional.
– Opción 2: selección, join, proyección
project vnombre ( V njoin ( select cantidad > 100 ( C ) ) )
100 tuplas
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
5
© Diseño de Amador Durán Toro, 2011
100 tuplas
3
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Ejemplo de procesado de consulta
– Queremos ejecutar la siguiente consulta en SQL:
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
select V.vnombre from V Vinos, C Cosechas
where V.vid = C.vid and C.cantidad > 100;
– El primer paso es traducirla a álgebra relacional.
– Opción 3: producto cartesiano, selección,
proyección
project vnombre (
select V.vid = C.vid and cantidad > 100 ( V product C ) )
100 tuplas
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
6
© Diseño de Amador Durán Toro, 2011
600.000 tuplas
Procesamiento y Optimización de Consultas
• Ejemplo de procesado de consulta
– ¿Cuál de las tres consultas en álgebra relacional
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
es más eficiente? ¿Cuál seleccionaría? ¿Por qué?
project vnombre ( select cantidad > 100 ( V njoin C ) )
1.200 tuplas
4. Equivalencias
en AR
5. Heurísticas de
optimización
100 tuplas
project vnombre ( V njoin ( select cantidad > 100 ( C ) ) )
100 tuplas
100 tuplas
600.000 tuplas
100 tuplas
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
7
© Diseño de Amador Durán Toro, 2011
project vnombre (
select V.vid = C.vid and cantidad > 100 ( V product C ) )
4
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Coste de una consulta
– El coste, en tiempo de ejecución, de una consulta
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
a una base de datos depende de:
• Tiempo de acceso al sistema de E/S (90%)
• Tiempo de procesamiento de CPU (10%)
– El tiempo de acceso al sistema de E/S
depende de:
• Volumen de datos: número y tamaño de las tuplas,
tanto de las relaciones involucradas como de los
resultados intermedios
• Organización física: índices, tablespaces, …
los resultados intermedios
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
8
© Diseño de Amador Durán Toro, 2011
• Tamaño de los buffers en memoria para almacenar
Procesamiento y Optimización de Consultas
• Para reducir el coste de una consulta…
– Reducir los accesos al sistema de E/S
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
• Reducir los resultados intermedios: menos
accesos y más probabilidad de que quepan
en los buffers en memoria.*
• Seleccionar por atributos indexados:
accesos mucho más eficientes y búsquedas
mucho más rápidas.
– Reducir el procesamiento de CPU
• Simplificar expresiones de selección: ahorran tiempo
* Si los resultados intermedios no caben en los buffers en memoria, deben almacenarse en disco.
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
9
© Diseño de Amador Durán Toro, 2011
de procesamiento y, a veces, accesos al sistema de
E/S.
5
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Ejemplo de simplificación de expresiones
select región from Productores
where nombre = ‘Osborne’
o
2. Coste de una
consulta
or not ( región = ‘Jerez’ )
j
3. Simplificación
de expresiones
and ( región = ‘Jerez’ or región = ‘La Mancha’ )
4. Equivalencias
en AR
and not ( región = ‘La Mancha’ );
1. Procesado de
consultas
m
5. Heurísticas de
optimización
• Simplificando la condición del where…
𝑜∨𝑗∧ 𝑗 ∨𝑚 ∧ 𝑚 ≡ 𝑜∨
𝑗∧𝑗 ∨ 𝑗∧𝑚) ∧𝑚 ≡
falso
𝑗 ∧ 𝑚 ∧ 𝑚 ∧ 𝑚) ≡ 𝑜
falso
falso
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
10
© Diseño de Amador Durán Toro, 2011
𝑜∨ 𝑗 ∧𝑚 ∧𝑚 ≡ 𝑜∨
Procesamiento y Optimización de Consultas
• Ejemplo de simplificación de expresiones
select región from Productores
1. Procesado de
consultas
where nombre = ‘Osborne’
2. Coste de una
consulta
or not ( región = ‘Jerez’ )
3. Simplificación
de expresiones
and ( región = ‘Jerez’ or región = ‘La Mancha’ )
4. Equivalencias
en AR
and not ( región = ‘La Mancha’ );
5. Heurísticas de
optimización
select región from Productores
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
11
© Diseño de Amador Durán Toro, 2011
where nombre = ‘Osborne’;
6
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Algunas equivalencias lógicas
– Conjunciones y negaciones básicas
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
• 𝑎 ∧ ¬𝑎 ≡ 𝑓𝑎𝑙𝑠𝑜
• 𝑎 ∨ ¬𝑎 ≡ 𝑐𝑖𝑒𝑟𝑡𝑜
• 𝑎 ∧ 𝑓𝑎𝑙𝑠𝑜 ≡ 𝑓𝑎𝑙𝑠𝑜
• 𝑎 ∨ 𝑓𝑎𝑙𝑠𝑜 ≡ 𝑎
• 𝑎 ∧ 𝑐𝑖𝑒𝑟𝑡𝑜 ≡ 𝑎
• 𝑎 ∨ 𝑐𝑖𝑒𝑟𝑡𝑜 ≡ 𝑐𝑖𝑒𝑟𝑡𝑜
– Leyes de De Morgan
• ¬ 𝑎 ∨ 𝑏 ≡ ¬𝑎 ∧ ¬𝑏
• ¬ 𝑎 ∧ 𝑏 ≡ ¬𝑎 ∨ ¬𝑏
– Implicación
• 𝑎 → 𝑏 ≡ ¬𝑎 ∨ 𝑏
– Cuantificadores
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
12
© Diseño de Amador Durán Toro, 2011
• ∀𝑥 ∙ ¬𝑃 𝑥 ≡ ∄𝑥 ∙ 𝑃 𝑥)
• ∀𝑥 ∙ 𝑃 𝑥 ≡ ∄𝑥 ∙ ¬𝑃 𝑥
Procesamiento y Optimización de Consultas
• Equivalencias en álgebra relacional*
– Cascada de selecciones
1. Procesado de
consultas
2. Coste de una
consulta
• 𝜎𝑐1∧ 𝑐2 𝑅
≡ 𝜎𝑐1 𝜎𝑐2 𝑅 )
3. Simplificación
de expresiones
4. Equivalencias
en AR
– Cascada de proyecciones ( 𝑎1 ⊆ 𝑎2 ⊆ … ⊆ 𝑎𝑛 )
5. Heurísticas de
optimización
• Π𝑎1
Π𝑎2 … Π𝑎𝑛 𝑅
≡ Π𝑎1 𝑅
– Asociatividad de joins
𝑅⋈𝑆 ⋈𝑇≡𝑅⋈ 𝑆⋈𝑇)
* Se usa la notación teórica por simplificar. Consultar el tema de álgebra relacional.
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
13
© Diseño de Amador Durán Toro, 2011
•
7
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Equivalencias en álgebra relacional*
– Distribución de la selección sobre el join
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
• 𝜎𝑐𝑅∧ 𝑐𝑆 𝑅 ⋈ 𝑆
≡ 𝜎𝑐𝑅 𝑅 ⋈ 𝜎𝑐𝑆 𝑆
• Donde cR sólo incluye atributos de R y cS sólo de S.
4. Equivalencias
en AR
5. Heurísticas de
optimización
– Distribución de la proyección sobre el join
• Π𝐴𝑅∪𝐴𝑆 𝑅 ⋈ 𝑆 ≡ Π𝐴𝑅∪𝐴𝑆 Π𝐴𝑅∪𝐴⋈ 𝑅 ⋈ Π𝐴𝑆 ∪𝐴⋈ 𝑆
• Donde AR sólo incluye atributos de R, AS sólo de S y
* Se usa la notación teórica por simplificar. Consultar el tema de álgebra relacional.
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
14
© Diseño de Amador Durán Toro, 2011
A⋈ los atributos sobre los que se realiza el join.
Procesamiento y Optimización de Consultas
• Equivalencias en álgebra relacional*
– Distribución de la proyección sobre la selección
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
• Π𝐴 𝜎𝑐 𝑅
≡ Π𝐴 𝜎𝑐 Π𝐴∪𝐴𝑐 𝑅 )
• Donde Ac son los atributos de R que se usan en la
condición de la selección.
– Distribución de la selección sobre ∪, ∩ y −
• 𝜎𝑐 𝑅 ∪ 𝑆 ≡ 𝜎𝑐 𝑅
∪ 𝜎𝑐 𝑆 )
igual para ∩ y −
– Distribución de la proyección sobre la unión
∪ Π𝐴 𝑆
* Se usa la notación teórica por simplificar. Consultar el tema de álgebra relacional.
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
15
© Diseño de Amador Durán Toro, 2011
• Π𝐴 𝑅 ∪ 𝑆 ≡ Π𝐴 𝑅
8
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Heurísticas de optimización de consultas
1. Realizar las selecciones tan pronto como sea
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
posible
• Reduce el número de tuplas de los resultados
intermedios.
2. Realizar las selecciones sobre atributos indexados
antes que sobre los no indexados
• Reduce las operaciones de E/S al usar los índices y
se ejecutan mucho más rápido. Aplicar la cascada
de selecciones si es necesario.
3. Realizar las proyecciones tan pronto como sea
• Reduce el número de atributos de los resultados
intermedios.
diciembre 2011
Introducción a la Ingeniería del Software y a los Sistemas de Información
16
© Diseño de Amador Durán Toro, 2011
posible
Procesamiento y Optimización de Consultas
• Heurísticas de optimización de consultas
4. Realizar las operaciones de selección y join más
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
restrictivas primero*
• Reduce el número de tuplas de los resultados
intermedios. Aplicar asociatividad si es necesario.
5. Eliminar proyecciones redundantes
• Reduce el número de atributos de los resultados
intermedios. Aplicar la cascada de proyecciones.
6. Usar DISTINCT sólo cuando sea imprescindible
• Evita tener que comparar resultados intermedios
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
17
© Diseño de Amador Durán Toro, 2011
para detectar duplicados y eliminarlos del resultado.
9
Procesamiento y Optimización de Consultas
16/12/2011
Procesamiento y Optimización de Consultas
• Bibliografía
1. Procesado de
consultas
2. Coste de una
consulta
3. Simplificación
de expresiones
4. Equivalencias
en AR
5. Heurísticas de
optimización
– R. Elmasri, S. Navathe, Fundamentos de
Sistemas de Bases de Datos (5ª edición).
Ed. Addison-Wesley, 2007.
• Capítulo 15.
– R. Ramakrishnan, J. Gehrke, Database
Management Systems (3ª edición).
Ed. McGraw-Hill, 2003.
• Capítulos 12 y 15.
• Capítulos 13 y 14.
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
18
© Diseño de Amador Durán Toro, 2011
– A. Silberschatz et al., Fundamentos de Bases
de Datos (5ª edición). Ed. McGraw-Hill, 2006.
10