Вы находитесь на странице: 1из 4

Optimizacion Se optimiza para que el sistema tenga un desempeo aceptable.

La ventaja de la optimizacin automtica es que los usuarios no tiene por que preocuparse por formular las consultas de la mejor manera (no precisan conocimientos de programacin). Aparte de que el usuario no se preocupe por formular las consultas tmb hay una posibilidad de que el optimizador lo haga mejor que el humano estas son las razones: 1. El optimizador tiene la siguiente estadsticas haciendo que sea mejor que el humano que no las posee (cantidad de valores del dominio, de tupias, de valores distintos, de veces que se dan esos valores en los atributos) 2. Si las estadistican cambian con el tiempo se precisa una estrategia de optimizacin diferente 3. El optimizador es un programa que es mucho mas paciente que un usuario humano, considera mas estrategias de optimizacin que el humano 4. El optimizador tiene las habilidades y servicios de los mejores programadores humanos Entonces, el propsito general del optimizador es seleccionar una estrategia eficiente para la evaluacin de una expresin relacional dada un cambio muy simple en el algoritmo de ejecucin (hacer una restriccin y luego una junta, en lugar de una junta y luego una restriccin). Si se hubiese indexado o dispersado seria aun mejor. Aun hay mas mejoras que se pueden realizar Cuatro grandes etapas en elprocesamiento de consultas: 1- Convertir la consulta a su forma interna -> Convierte la consulta en alguna representacin interna que sea mas adecuada para manejar en la maquina. La forma interna seleccionada es algebra relacional, rbol o grafo. 2- Convertir a la forma canonica -> Se realizan varias optimizaciones que son garantizadas como buenas sin tomar en cuenta los valores actuales de los datos ni las rutas de acceso fisicas. Se realizan los siguientes pasos: a. Transformaciones con optimizaciones de calidad garantizada b. Transformaciones basadas en leyes de transformacion 3- Seleccionar procedimientos candidatos de bajo nivel-> El optimizador debe decidir como ejecutar dicha consulta. En esta etapa entran en juego ndices, acceso fsico, distribucionde de datos. Para cada operacin de bajo nivel el optimizador tendr a su disposicin un conjunto de procedimientos de implementacin predefinidas. 4- Generar planes de consulta y seleccionar el mas barato -> Involucra la construccione de una conjunto de planes de consulta candidatos seguida de una seleccin del mejor de estos planes (es decir el mas barato). Transfromacion de expresiones Reglas de transformacin que son tiles en la etapa 2, el optimizador aplica las reglas hasta que llegue a una expresin optima - Resticciones y proyecciones -> Consiste en hacer las restricciones (WHERE) antes que las proyecciones, la restriccin reduce el tamao de la entrada a la proyeccin. - Distributividad -> En el algebra relacional el operador de restriccin se distribuye sobre la unin, interseccin y la diferencia. La aplicacin temprana de la restriccin casi siempre es una buena idea - Conmutatividad y asociatividad ->En el algebra relacional la unin la interseccin y la junta son conmutativas pero la diferencia y la divisin no lo son

+ Conmutatividad -> En una junta el sistema es libre de seleccionar la relacin mas pequea para calcular la junta + Asociatividad -> La unin la interseccin y la junta son asociativas por lo tanto en una junta el sistema es libre de decidir cual de las secuancias es mas eficiente - Idempotencia -> La unin la interseccin y la junta son idempotentes. Decimos que el operador didctico o es idempotente a o a = a - Expresiones lgicas (expresiones booleanas) -> Cualquier expresin lgica puede ser transformada en una expresin equivalente en lo que se llama Forma normal conjuntiva (CNF). Para realizar esto se aplican las leyes de transitividad. -Transformaciones semnticas-> Realiza una validacin verificando que existan las tablas y columnas mencionadas en la consulta Reglas heuristicas Tienen por objetivo modificar la representacin interna de una consulta a fin de mejorar su rendimiento. - Realizar la seleccin lo antes posible - Cambiar el orden de la consulta efectuando las mas restrictivas primero - Sustituir Productos cartesianos + Seleccin => Join - Realizar Proyeccion despus de cada seleccin o join El catalogo de DB - El numero y nombre de cada una de las tablas y vistas de una DB - El numero de columnas de cada tabla y vista junto con el nombre, el tipo de dato, la escala y la presision de cada columna - Las restricciones definidas para cada tabla - La cardinalidad - Los indices y las claves foraneas de cada tabla - Los usuarios autorizados a las tablas Estadisticas de la base de datos: Estas se usan en las etapas 3 y4 de la optimizacin, algunas de las esatadisticas principales son: -La cantidad de valores en cada dominio -La cantidad actual de duplas en cada barrel. - La cantidad actual de valores distintos en cada atributo de cada varrel base -etc El optimizador hace uso de las siguiente informacin para estimar costos: - Informacion estadistica guardada en el catalogo DB - Medidas de costo que utlizan costos que utlizan criterios de minimizacin - Generar varios planes de ejcucion equivalentes al query dado - Estima el costo de cada estrategia de ejecucin - Compara los costos de ejecutar una consulta con diferentes estrategias y elige el plan de ejecucin (estrategia) con menor costo estimado - El generador de codigo general el codigo necesario para ejecutar el plan

En un sistema distribuido es posible ejecutar en paralelo en procesadores diferentes distintas partes de la consulta descomposicin de la consulta la idea es dividir la consulta que involucra

muchas variables de alcance en una secuencia de consultas mas pequeas que generalmente involucra separacin y sustitucin de tupias: Separacin: Proceso de eliminacin de un componente de la consulta que tiene solo una variable en comn con el resto de la consulta Sustitucion de tupia: proceso de sustitucin de una variable de la consulta una tupia a la vez. Los operadores relacionales son: proyectar, juntar y resumir Ventajas de la optimizacion automatica: -solamente se puede efectuar en sistemas relacionales -la ventaja no es nicamente que los usuarios no tiene que preocuparse por formular sus consultas de la mejor manera -Existes una posibilidad real de que el optimizador pueda hacerlo mejor Table scan > modo de acceso que recorre toda la tabla en forma secuencial, no suele ser eficiente. Es usado cuando se desean seleccionar todos o casi todos los registros de una tabla o si tiene muy poca cantidad de registros Busqueda por indice - > los indices son estructuras de datos ordenadas que sirven para ubicar rapidamente un dato dentro de una tabla. Los tipos de indices son: - Index (B-Tree) -> un se crea para un campo particular de una tabla - Cluster Index - Bitmap Index (de Oracle)

RESUMEN DEL CAPITULO Comenzamos diciendo que la optimizacin representa un reto y una oportunidad para los sistemas relacinales. De hecho, la posibilidad de optimizacin es una ventaja de esos sistemas por varias razones, ya que un sistema relacional con un buen optimizador puede superar muy bien a un sistema no relacional. Nuestro ejemplo introductorio dio algunas ideas del tipo de mejoras que pueden ser logradas (un factor de 10,000 a 1 en ese caso particular). Las cuatro grandes etapas de la optimizacin son: Convertir la consulta en alguna forma interna (por lo general un rbol de consulta o rbol de sintaxis abstracto, aunque esa representacin puede ser considerada slo como una forma interna del lgebra relacional o del clculo relacional); Convertir a una forma cannica usando varias leyes de transformacin; Seleccionar los procedimientos de bajo nivel candidatos para la implementacin de las di versas operaciones de la representacin cannica de la consulta; Generar planes de consulta y elegir el ms barato, usando frmulas de costo y conoci miento a partir de estadsticas de la base de datos. Luego tratamos las leyes generales distributiva, conmutativa y asociativa y su aplicabilidad a los operadores relacinales tales como la junta (y tambin su aplicabilidad a los operadores aritmticos, lgicos y de comparacin) y mencionamos otra ley general llamada idempotencia. Tambin tratamos algunas transformaciones especficas para los operadores restriccin y proyeccin. Luego presentamos la idea importante de las transformaciones semnticas; es decir, las transformaciones basadas en el conocimiento del sistema de las restricciones

de integridad. A manera de ilustracin, mencionamos algunas de las estadsticas mantenidas por los productos DB2 e Ingres. Luego describimos una estrategia de "divide y vencers" llamada descomposicin de la consulta (la cual fue presentada con el prototipo de Ingres) y mencionamos que tal estrategia puede ser muy atractiva en un ambiente de procesamiento en paralelo o distribuido. Por ltimo, examinamos determinadas tcnicas de implementacin para algunos de los operadores relacinales (en especial el de junta). Presentamos algoritmos en seudocdigo para cinco tcnicas de junta (fuerza bruta, bsqueda con ndice, bsqueda con dispersin, mezcla (incluyendo ordenamiento/mezcla) y dispersin) y consideramos brevemente los costos asociados con esas tcnicas. En conclusin, debemos mencionar que muchos de los productos actuales incluyen desgraciadamente determinados inhibidores de optimizacin, de lo cual debern estar conscientes los usuarios (aunque en la mayora de los casos, poco es lo que pueden hacer). Un inhibidor de optimizacin es una caracterstica del sistema en cuestin que impide que el optimizador haga el buen trabajo que podra hacer (es decir, si esa caracterstica no estuviera). Los inhibidores en cuestin incluyen a las filas duplicadas (vea la referencia [5.6]), la lgica de tres valores (vea el captulo 18) y la implementacin de la lgica de tres valores en el SQL (vea las referencias [18.6] y [18.10]). Transacciones

Вам также может понравиться