miércoles, 22 de abril de 2015

Actividad #15

Puntos para la optimización de consultas distribuidas SQL

•Identificar sentencias problemáticas 
•Verificar las estadísticas 
•Revisar los planes de ejecución 
•Reestructurar las sentencias SQL
 •Reestructurar los índices
 •Mantener los planes de ejecución

Para optimizar el uso de la memoria compartida: „ 
  • Escribir código genérico „
  •  Seguir estándares de codificación „ 
  • Usar variables a reemplazar en tiempo de ejecución
Optimización global de consultas
 La optimización que se realiza en este apartado ordena la forma en que se van a ejecutar las consultas para que los recursos de computación como discos, comunicaciones, etc. puedan ser utilizados de manera eficiente. Debemos tener en cuenta las cardinalidades de los resultados intermedios, las estadísticas de la base de datos y tener presente el modelo de coste que se expresa de la siguiente forma:
Coste_total=Coste_cpu*#instr+C_I/O*#I/Os+C_mensaje*#mensajes+C_transm*#bytes
C_mensaje es el coste de enviar o recibir un mensaje.C_transm es el coste de transmitir unidades de un lugar a otro.
Se aplican varios algoritmos de optimización. Muchos son genéricos de las bases de datos relacionales y otros como INGRES, R*, SSD-1 o AHY son específicos de las bases de datos distribuidas.

Procesamiento de consultas locales.

Para procesar una consulta local solo se hace referencia a tablas y bases de datos locales(no a vistas ni a tablas remotas) , es decir que estén dentro de la misma instancia del manejador de bases de datos, en una única maquina y que nos se tenga que conectar al servidor a otras maquinas para poder efectuar 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 eligen los algoritmos para realizar las operaciones relacionales. 
La optimización local utiliza los algoritmos de sistemas centralizado.

La entrada al optimizador consta de la consulta, el esquema de la base de datos(definiciones de tabla e índice) y las estadísticas de base de datos. Una instrucción SELECT define únicamente los siguientes elementos:
El formato del conjunto de resultados. Las tablas que contienen los datos de origen. Esto se especifica en la cláusula FROM.
Cómo se relacionan lógicamente las tablas para la instrucción SELECT. Esto se define en las especificaciones de combinación, que pueden aparecer en la cláusula WHERE o en una cláusula ONE que sigue a FROM.
Las condiciones que deben cumplir las filas de las tablas de origen para satisfacer los requisitos de la instrucción SELECT. Estas condiciones se especifican en las cláusulas WHERE y HAVING.

Optimizador de consultas.

El optimizador de consultas es uno de los componentes más importantes de un sistema de base de datos SQL. El optimizador de consultas de SQL Server es un optimizador basado en el costo. El optimizador de consultas debe analizar los planes posibles y elegir el de menor costo estimado. Algunas instrucciones SELECT complejas tienen miles de planes de ejecución posibles. El optimizador de consultas de SQL Server elige, además del plan de ejecución con el costo de recursos mínimo, el plan que devuelve resultados al usuario con un costo razonable de recursos y con la mayor brevedad posible. El optimizador de SQL Server utilizará un plan de ejecución en paralelo para devolver resultados si esto no afecta negativamente a la carga del servidor. Pueden estar seguros de que el optimizador de consultas creará un plan de ejecución eficaz para el estado de la base de datos cada vez que se ejecuta la instrucción.
1.El optimizador de consultas analiza diferentes formas de acceso a las tablas de origen. La versión final y optimizada del árbol de la consulta se denomina plan deejecución.
2.El motor relacional comienza a ejecutar el plan de ejecución. A medida que se procesan los pasos que necesitan datos de las tablas base, el motor relacional solicita al motor de almacenamiento que pase los datos de los conjuntos de filas solicitados desde el motor relacional





Referencias:
http://es.scribd.com/doc/23911262/Procesamiento-de-Consultas-Locales#scribd

http://www.econ.uba.ar/www/departamentos/sistemas/plan97/s_datos/waldbott/chinkes/material/Analisis%20y%20Optimizacion%20de%20Consultas_0107_v2.pdf


No hay comentarios:

Publicar un comentario