Optimización de consultas distribuidas
El
objetivo del procesamiento de consultas en un ambiente distribuido
es transformar una consulta sobre una base de datos distribuida en una
especificación de alto nivel a una estrategia de ejecución eficiente
expresada en un lenguaje de bajo nivel sobre bases de datos locales.
Así,
el problema de optimización de consultas es minimizar una función de
costo tal que función de costo total = costo de I/O + costo de CPU +
costo de comunicación
Los
diferentes factores pueden tener pesos diferentes dependiendo del
ambiente distribuido en el que se trabaje. Por ejemplo, en las redes de
área amplia (WAN), normalmente el costo de comunicación domina dado que
hay una velocidad de comunicación relativamente baja, los canales están
saturados y el trabajo adicional requerido por los protocolos de
comunicación es considerable. Así, los algoritmos diseñados para
trabajar en una WAN, por lo general, ignoran los costos de CPU y de I/O.
En redes de área local (LAN) el costo de comunicación no es tan
dominante, así que se consideran los tres factores con pesos variables.
Optimización global de consultas
Dada
una consulta algebraica sobre fragmentos, el objetivo de esta capa es
hallar una estrategia de ejecucion para la consulta cercana a la optima.
La estrategia de ejecucion para una consulta distribuida puede ser
descrita con los operadores del algebra relacional y con primitivs de
comunicacion para transferir datos entre nodos. Para encontrar una buena
transformacion se consideran las caracteristicas de los fragmentos,
tales como, sus cardinalidades. Un aspecto importante de la optimizacion
de consultas es el ordenamiento de juntos, dado que algunas
permutaciones de juntos dentro de la consulta pueden conducir a un
mejoramiento de varios ordenes de magnitud. La salida de la capa de
optimizacion global es una consulta algebraica optimizada con opreacion
de comunicacion incluidas sobre los fragmentos.
Optimización local de consultas
El
trabajo de la ultima capa se efectua en todos los nodos con fragmentos
involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo,
llamada consulta local, es optimizada usando el esquema local del nodo.
Hasta este momento, se pueden elegir los algoritmos para realizar las
operaciones relacionales. La optimizacion local utiliza los algoritmos
de sistemas centralizados
No hay comentarios.:
Publicar un comentario