Diario de SQL Server

Examinando un plan de ejecución

En el foro, a Titojarocho le surgió un problema de running totals.

 

http://social.technet.microsoft.com/Forums/es-ES/sqlserveres/thread/d373d031-feae-4402-99d1-ff89f27391a4

 

El caso lo pudo resolver, pero quería saber si el plan de ejecución de lo obtenido era adecuado. Para poder examinarlo, me envió el plan de ejecución, ya que pegarlo en un post era muy complicado, por su tamaño. Dejo aquí la conversación que mantuvimos por mail para conocimiento del resto de usuarios del foro, incluyendo fotos de los planes de ejecución que él me envió en formato xml, salvado como .sqlplan.

 

Hola Alberto

 

Te paso el archivo del plan en xml.
 
Necesitas que te pase la imagen?
 
Saludos cordiales,

 

<Titojarocho>

 

http://qwalgrande.blogspot.es/img/Titojarocho1.gif 

 

Hola.

 

Lo que puedo decirte es que crees el índice que te sugiere el optimizador y vuelvas a pasarme el plan, indicándome también la diferencia de rendimiento que experimentes.

 

USE [DESARROLLO]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [Ventas].[P_VTASACUMXDIAVEND] ([Compania],[Fecha])
INCLUDE ([Sucursal],[Canal],[VentaDia])
GO

 

Alberto López Grande.

 


Hola Alberto, te envío el plan de ejecución el tiempo de respuesta es igual, nada más que en vez de scanear el índice agrupado ahora scanea por el índice creado.
 
Una pregunta cómo puedo determinar cuando un query necesita un índice en sql Server? Tienes algo de literatura para checar más afondo sobre este tema.
 
Te agradezco tu tiempo.
 
Saludos cordiales,

 

<Titojarocho>

 

http://qwalgrande.blogspot.es/img/Titojarocho2.gif  

 

 

Hola.

 

El actual plan es bastante mejor que el otro. Puede que rinda más o menos igual, pero el número de lecturas seguramente sea inferior.

 

Sobre cómo saber cuándo una consulta puede mejorarse con un índice, hay varias formas, pero quizá la más simple es con el plan de ejecución en modo gráfico. Si abres el primero de los ficheros que me mandaste con Management Studio, verás que aparece un texto en verde en la cabecera, es una sugerencia para la creación de índices. Si le pulsas botón derecho y le das a "Missing Index Details", te prepara la consulta de creación del índice y todo.

 

Pero quizá sea más útil crear los índices basándote en su uso. Puede que una ejecución no justifique la creación del índice, pero muchas sí. Escribí en mi blog hace poco sobre ello:

 

http://qwalgrande.blogspot.es/1284932940/crear-los-indices-que-se-necesitan...-(1/2)/

 

Ahora sólo nos queda informa de ello en el foro para que sea útil a mucha más gente. A ver si tengo un rato y lo preparo.

 

Alberto.

 

Comentarios

No hay ningún comentario

Añadir un Comentario: