3.3. TRANSPARENCIA DE DESEMPEÑO Y OPTIMIZACIÓN DE CONSULTAS
CARACTERÍSTICAS
Estas características permiten al sistema tener un rendimiento como si fuera un DBMS centralizado. El sistema no sufrirá ninguna degradación en su rendimiento derivado de su uso en una red o derivado de las diferencias en la plataforma de red. Esto asegura que el sistema encontrará la ruta más efectiva en costos para acceder datos remotos.
Una de las funciones de base de datos más importantes es la disponibilidad de los datos. Si todos los datos residen en un solo sitio en una base de datos centralizada, el DBMS debe evaluar todos los requerimientos de datos y encontrar la mejor ruta de acceso a los datos locales.
En contraste, los sistemas de base de datos distribuidas hacen posible la partición de una base de datos en varios fragmentos, entonces la traducción de la consulta es más complicada porque los DDBMS deben decidir en qué fragmento de la base de datos debe acceder. Además los datos pueden también estar replicados en diferentes sitios.
OBJETIVO DE LA OPTIMIZACIÓN DE CONSULTAS
El objetivo de la optimización de consultas es minimizar los costos totales asociados con la ejecución de un requerimiento. Los costos asociados con el requerimiento son una función de:
El costo del tiempo de acceso (I/O) requerido en acceder a los datos físicamente en disco.
El costo de uso de red asociado con la transmisión de los datos.
El costo tiempo de procesamiento (CPU)
Dado que los costos son clasificados ya sea por comunicación o por procesamiento, no todos los algoritmos de optimización de consultas usan los mismos parámetros para la evaluación de costos.
OPTIMIZACIÓN DE CONSULTAS
Para evaluar la optimización de consultas, debemos tener en mente que el procesador de transacciones (TP) debe recibir los datos del procesador de datos (DP), sincronizarlos, generar la respuesta a partir de las consultas en cada sitio y presentarlas al usuario final o a la aplicación. A pesar de que este proceso es estándar, debemos considerar que una consulta en particular puede ser ejecutada en uno de los diferentes sitios. El tiempo de respuesta asociado con los sitios remotos no puede ser fácilmente predeterminado porque algunos nodos pueden terminar su parte de la consulta más rápido que otros.
La optimización de consultas en base de datos distribuidas debe ofrecer transparencia de distribución y transparencia de réplica. Transparencia de réplica se refiere a la habilidad del DDBMS de ocultar al usuario la existencia de múltiples copias de datos.La mayoría de los algoritmos propuestos por la optimización de consultas están basados en dos principios:
La selección del orden de ejecución óptimo
La selección de los sitios a ser accesados para minimizar los costos de uso de red.
CLASIFICACIÓN DE MODOS DE OPERACIÓN
Dentro de estos dos principios, el algoritmo de optimización de consultas debe ser evaluado con base en su modo de operación o el tiempo de su optimización. Los modos de operación pueden ser clasificados como manuales o automáticos.
La optimización de consulta automática significa que el DDBMS tiene cuidado de encontrar la ruta de acceso con el costo más efectivo sin intervención del usuario.
La optimización de consulta manual requiere que la optimización sea seleccionada y calendarizada por el usuario final o el programado.
Otra clasificación de optimización de consulta puede ser de acuerdo a cual optimización se realiza.
Clasificación de optimización dependiendo del momento en que se realiza, el algoritmo de optimización de consulta puede ser estático o dinámico.
La optimización de consulta estática tiene lugar al tiempo de compilación. Este tipo de optimización es común cuando las sentencias SQL están inmersas en un lenguaje de programación procedural. Cuando el programa se compila, este crea el plan de acceso necesario para acceder a la base de datos. Cuando el programa es ejecutado, el DBMS usa el plan de acceso para acceder a la base de datos.
La optimización de consulta dinámica toma lugar al tiempo de ejecución. La estrategia de acceso es definida cuando el programa es ejecutado. Por lo tanto, la estrategia de acceso es dinámicamente determinada por el DBMS al tiempo de ejecución, usando la información más actualizada acerca de la base de datos. A pesar de que la optimización de consultas dinámica puede ser eficiente, su costo es medido por el tiempo de ejecución (run time processing overead). La mejor estrategia es determinada cada vez que la consulta es ejecutada, esto puede pasar varias veces en el mismo programa.
Para implementar el control de concurrencia se debe conocer lo siguiente.
El tipo de algoritmo de planificación utilizado.
La localización del planificador.
¿Cómo se controlan los datos duplicados? ¿Anomalías de procesamiento concurrente?
Cuando se ejecutan transacciones concurrentes en base de datos distribuidas, pueden interferir unas con otras, lo que puede afectar la integridad y consistencia de la base de datos. Los diferentes problemas que se pueden presentar son los siguientes.
Problema de actualización, pérdidas.
Violación de integridad.
Lectura o recuperación inconsciente.
El problema de actualización pérdidas ocurre cuando un usuario aparentemente completa una actualización. Con éxito y puede ser sobreescrita por otro usuario, es decir, cuando dos o más transacciones acceden concurrentemente sobre el mismo registro de datos, una transacción actualiza un registro de datos y otra transacción, escribe este mismo registro. En el siguiente ejemplo se efectúan dos transacciones T1 Y T2 de forma concurrente, la transacción de T1 resta 500 unidades de registro X y la transacción T2 incrementa 200 unidades de registro. X. Como podemos observar, se pierde la actualización de la transacción. T2.
CONCLUSIÓN:El objetivo de la optimización de consultas es minimizar los costos totales asociados con la ejecución de un requerimiento viéndolo desde este punto, la optimización de consultas es fundamental, ya que sin la optimización todo sería muy obsoleto y estaríamos expuestos a varios errores.
Comentarios
Publicar un comentario