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*#bytesC_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.
Coste_total=Coste_cpu*#instr+C_I/O*#I/Os+C_mensaje*#mensajes+C_transm*#bytesC_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