Está en la página 1de 10

UPC Implementacion de Base de datos

OPTIMIZACION DE CONSULTAS

Objetivos
Revisar las consultas y resolver problemas
de rendimiento Revisar un plan de ejecucin Identificar consultas mal elaboradas Revisar un plan de ejecucin Mantener y optimizar ndices

Problema
En una institucin internacional con
muchos miembros a nivel mundial se realizan bsquedas utilizando las primeras letras de sus apellidos Los datos de la columna Apellidos de la tabla Miembros utilizan maysculas y minsculas combinndolas y para encontrar a los miembros se utilizaba la funcin UPPER en la consulta por Apellidos

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Consulta Problema
SELECT Apellidos FROM Miembros WHERE UPPER(Apellidos) LIKE MAN%

Premisa, no se puede modificar el juego de


caracteres del servidor que es sensitivo

Porque esta consulta es notablemente


lenta ?

Una Solucin al Problema


ALTER TABLE Miembros ADD ApellidoMayus AS UPPER(Apellidos) GO CREATE NONCLUSTERED INDEX IXMiembrosApellidoMayus ON Miembros(ApellidoMayus) GO

Una Solucin al Problema


SELECT Apellidos FROM Miembros WHERE ApellidosMayus LIKE 'MAN%'

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Otros Motivos de Consultas Lentas


Problemas de red Memoria inadecuada en el equipo servidor
o falta de memoria disponible para el servidor Falta arreglo de discos (RAID) Falta de estadsticas tiles Falta de ndices tiles Falta de particiones tiles

Problemas de Red
El
problema de rendimiento de las consultas puede estar relacionado con un componente distinto a las mismas consultas Por ejemplo, el problema se puede deber al rendimiento lento de la red Tambin se debe monitorear: La actividad de los discos La actividad de la CPU El uso de la memoria

Estadsticas Utiles
Las estadsticas para la optimizacin de consulta
son objetos que contienen informacin estadstica acerca de la distribucin de valores en una o ms columnas de una tabla El optimizador de consultas utiliza estas estadsticas para estimar la cardinalidad, o nmero de filas en el resultado de la consulta Estas estimaciones de cardinalidad habilitan al optimizador de consultas para crear un plan de consulta de alta calidad

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Estadsticas Utiles
Para actualizar la informacin sobre la distribucin de las claves en una tabla especifica se utiliza UPDATE STATISTICS UPDATE STATISTICS Sales.SalesOrderDetail; GO UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid; GO

ndices Utiles
Si se utiliza un gran nmero de ndices en una
tabla, el rendimiento de las instrucciones INSERT, UPDATE, DELETE y MERGE se ver afectado, ya que todos los ndices deben ajustarse adecuadamente a medida que cambian los datos de la tabla Evite crear demasiados ndices en tablas que se actualizan con mucha frecuencia y mantenga los ndices razonables, es decir, defnalos con el menor nmero de columnas posible

ndices Utiles
Utilice un nmero mayor de ndices para
mejorar el rendimiento de consultas en tablas con pocas necesidades de actualizacin, pero con grandes volmenes de datos. Un gran nmero de ndices contribuye a mejorar el rendimiento de las consultas que no modifican datos, ya que el optimizador de consultas dispone de ms ndices entre los que elegir para determinar el mtodo de acceso ms rpido

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

ndices Utiles
La indexacion de tablas pequeas puede no
ser una solucin ptima, porque se tarda ms tiempo en realizar la bsqueda de los datos a travs del ndice que en realizar un simple recorrido de la tabla De este modo, es posible que los ndices de tablas pequeas no se utilicen nunca; sin embargo, sigue siendo necesario su mantenimiento a medida que cambian los datos de la tabla

Plan de Ejecucin
Un plan de ejecucin es el conjunto de pasos que tiene que realizar el DBMS para ejecutar una consulta Un plan de ejecucin de una consulta SQL es una definicin de: La secuencia en la que se tiene acceso a las tablas de origen La forma como utilizara los ndices de las tablas

Optimizacin
El proceso de seleccin de un plan de
ejecucin entre varios planes posibles se conoce como optimizacin El optimizador de consultas es uno de los componentes ms importantes de un sistema de base de datos SQL

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Identificacin de consultas mal elaboradas


Las herramientas que se pueden utilizar
son: SQL Server Management Studio El analizador de SQL Server El asistente para la optimizacin del motor de base de datos Las vistas de administracin dinmicas

Identificacin de consultas mal elaboradas


USE AdventureWorks GO SELECT DISTINCT * FROM HumanResources.Employee WHERE SUBSTRING(NationalIDNumber,1,1) = '8'

Identificacin de consultas mal elaboradas


Ingresar al SQL Server Profiler Identificar un trace Seleccionar: ExistingConnection TSQL:SQL:BatchCompleted Escribir un query Revisar la traza

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Identificacin de consultas mal elaboradas


Realizar la revisin de la traza para: USE AdventureWorks GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber LIKE '8%'

Identificacin de consultas mal elaboradas

Analizar a que pueden deberse las diferencias de rendimiento entre ambas consultas ?

Anlisis de Planes de Ejecucin


Si se quiere determinar porque tarda tanto
en ejecutarse y que esta causando el problema de una consulta se tiene que examinar su plan de ejecucin Se puede utilizar las siguientes herramientas: Las opciones de la instruccin SET Las clases de eventos del analizador El plan de ejecucin grafico de SQL Server Management Studio

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Plan de Ejecucin Actual y Estimado


Se puede ver los siguientes planes: El plan de ejecucin de un plan para una
consulta que fue ejecutada (plan actual) El plan de ejecucin de cmo se ejecutara una consulta (el plan estimado)

Plan de Ejecucin Actual y Estimado


USE AdventureWorks GO SELECT * FROM HumanResources.Employee WHERE SUBSTRING(NationalIDNumber,1,1) = '8' UNION SELECT * FROM HumanResources.Employee WHERE Title like 'P%'

Plan de Ejecucin Actual y Estimado


USE AdventureWorks GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber LIKE '8%' OR Title LIKE P%'

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Algoritmos para SELECT


Una instruccin SELECT puede utilizar algunos de los siguientes mtodos de bsqueda: Bsqueda lineal Bsqueda binaria Utilizacin de un ndice cluster (una fila) Utilizacin de un ndice cluster para encontrar varias filas Utilizacin de un ndice no cluster para encontrar varias filas

Algoritmos para JOIN


Una operacin de JOIN puede utilizar algunos de los siguientes mtodos de bsqueda: Concatenacin de bucle anidado Concatenacin de bucle simple Concatenacin de ordenacin-mezcla Concatenacin de dispersin (hash)

Costo de Operacin
La optimizacin de consultas basada en
costos utiliza tcnicas de optimizacin que buscan en el espacio de soluciones de un problema la solucin que minimice una funcin objetivo (funcin de costo) En optimizacin de consultas, las funciones de costos son funciones estimadas

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

UPC Implementacion de Base de datos

Costo de Operacin
Los componentes de costos de la ejecucin de una consulta son: Costo de acceso al almacenamiento secundario Costo de almacenamiento Costo computacional Costo de uso de memoria Costo de comunicaciones

UPC - Ingeniera de Sistemas

Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.

También podría gustarte