2010-02-23 27 views
5

Tengo una aplicación que está activa más de 3 días. Veo en los registros que hubo un momento en que la aplicación ejecutó una consulta SQL y esto llevó mucho tiempo, probablemente debido a algunos bloqueos de db.¿Cómo encontrar consultas de SQL Server que tomaron mucho tiempo?

Escuché que hay una consulta para tales situaciones. Entonces, debo poder preguntar todas las consultas que tomaron, por ejemplo, más de 30 minutos. ¿Es posible?

Respuesta

7

seguirlo:

SELECT TOP 10 
    total_worker_time/execution_count AS Avg_CPU_Time 
     ,execution_count 
     ,total_elapsed_time/execution_count as AVG_Run_Time 
     ,(SELECT 
       SUBSTRING(text,statement_start_offset/2,(CASE 
                  WHEN statement_end_offset = -1 THEN LEN(CONVERT(nvarchar(max), text)) * 2 
                  ELSE statement_end_offset 
                 END -statement_start_offset)/2 
         ) FROM sys.dm_exec_sql_text(sql_handle) 
     ) AS query_text 
FROM sys.dm_exec_query_stats 
ORDER BY AVG_Run_Time DESC 
+0

Esta suele ser una respuesta fácil y rápida. Sin embargo, no todo lo que se almacena en caché se almacena en caché. Esté alerta si el execution_count no parece estar en el estadio correcto. – VoiceOfUnreason

1

use SQL Server Profiler.

+1

ser más específico – kenwarner

0

Puede usar SQL Server Profiler (una herramienta independiente que puede elegir instalar junto con SQL Server).

Tiene un asistente que puede usar para configurar un seguimiento para consultas de larga ejecución.

0

se puede lograr mediante la consulta de vistas de administración dinámica. SQL Server 2005 Performance Dashboard Reports también revelará (en realidad se basan en dmv) mucha información útil relacionada con el rendimiento.

Tenga en cuenta que cuando reinicia el servidor SQL la información anterior se pierde.

En SQL Server 2008 puede utilizar Data Collector

0

En SQL Server Management Studio, conectar con su servidor. A continuación, haga clic con el botón derecho en el nombre del servidor en el Explorador de objetos y haga clic en "Monitor de actividad". Las "Consultas costosas recientes" le dirán mucho de lo que le gustaría saber. Intenta hacer doble clic en una de las consultas mientras estás allí.

Cuestiones relacionadas