Estrategias de procesamiento de consultas distribuidas
El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL, las características del modelo relacional permiten que cada motor de base de datos elija su propia representación que, comúnmente, resulta ser el álgebra relacional. La optimización de consultas es, entonces, una de estas etapas (que por cierto otrosmodelos de bases de datos no poseen).
Existen distintos métodos para optimizar consultas relacionales, sin embargo el enfoque de optimización basada en costos combinado con heurísticas que permitan reducir el espacio de búsqueda de la solución es el método mayormente utilizado por los motores de base de datos relaciones de la actualidad, en todo caso, independiente del método elegido paraoptimizar la consulta, la salida de este proceso debe ser un plan de ejecución, el cual comúnmente es representado en su forma de árbol relacional.
La optimización de consultas en base a costos supone la utilización de una medida de costo que sea común a lo largo del proceso, esta medida debe representar el criterio de minimización en la utilización de recursos del sistema, la medida estándar parabases de datos relacionales es usualmente la cantidad de E/S (tanto de disco como de la’‘’ memoria intermedia). Este enfoque estima un costo que estará determinado por formulas predefinidas y por la información del catalogo inherente a la consulta. Sin embargo el optimizador no siempre escoge el plan más optimo, ya que una búsqueda exhaustiva de la estrategia óptima puede consumir demasiado tiempo deproceso. Se dice entonces que el optimizador escoge una estrategia “razonablemente eficiente”.
El catálogo de la base de datos guarda información estadística de cada una de las relaciones como también de los índices de cada una de la relaciones, estas estadísticas permiten estimar los tamaños de los resultados de varias operaciones. Esta información es particularmente útil cuando se dispone deíndices para auxiliar el procesamiento de la consulta, sin embargo, la existencia de estas estructuras influencia de manera significativa en la elección del plan de ejecución de la consulta.
Una mala administración de la información que contiene el catálogo conducirá inevitablemente a una desafortunada elección del plan de ejecución. Para ayudar a solucionar este problema existen varios enfoquesque conjunta o separadamente pueden asistir al optimizador en su elección. Uno de estos consiste en la actualización automática de las estadísticas que algunos motores de base de datos incluyen como opción. Otro enfoque es la opción de guardar en el catálogo planes de ejecución precalculados que además le ahorran al motor el tiempo de cálculo del plan. Obviamente estos planes son vulnerables a serinvalidados si se producen cambios lógicos en el esquema de la base de datos o si hay un cambio en la distribución de los datos a ser recuperados.
Uno de los primeros optimizadores de consultas y el que se conoce como base para la mayoría de los optimizadores tradicionales es el optimizador de System R. System R es un optimizador basado en costos pero que utiliza heurísticas para desplazarselecciones y proyecciones hacia abajo en el árbol de la consulta, la resolución de joins se realiza mediante el uso de árboles de profundidad por la izquierda O(n!) lo que permite el uso de evaluaciones encauzadas cuando sea posible. La estimación de los caminos de acceso para índices secundarios supone que se necesita un acceso a disco por cada tupla de la relación lo que supone el peor caso. Esprobable que la estimación sea precisa con tamaños de buffer pequeños, sin embargo con un buffer de mayor tamaño la página que contiene la tupla podria estar todavía en memoria.
Las contribuciones del optimizador de system R con respecto a otras investigaciones hechas hasta ese entonces se basan en un mejor aprovechamiento de las estadísticas del catálogo, la inclusión de la utilización de CPU en…