2010-05-14 21 views
5

Tengo una base de datos en SQL Server 2008, y hay muchas máquinas que realizan consultas en su contra. Sé que hay un perfilador de SQL Server, pero no sé muy bien cómo usarlo.¿La consulta SQL más ejecutada?

¿Hay alguna manera de saber cuáles son las consultas más comunes ejecutadas en la base de datos? A través del generador de perfiles o no, no importa.

¡Muchas gracias de antemano!

Respuesta

20
 SELECT * 
     FROM sys.dm_exec_query_stats AS a 
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS b 
    ORDER BY execution_count DESC 

Esto le indicará el número de veces que se ha ejecutado una consulta y la consulta más larga para ejecutar.

No estoy seguro de si esto va a ser útil o no, pero este SQL le dará la más lenta 100 consultas:

SELECT TOP 100 
      [Object_Name] = object_name(st.objectid), 
      creation_time, 
      last_execution_time, 
      total_cpu_time = total_worker_time/1000, 
      avg_cpu_time = (total_worker_time/execution_count)/1000, 
      min_cpu_time = min_worker_time/1000, 
      max_cpu_time = max_worker_time/1000, 
      last_cpu_time = last_worker_time/1000, 
      total_time_elapsed = total_elapsed_time/1000 , 
      avg_time_elapsed = (total_elapsed_time/execution_count)/1000, 
      min_time_elapsed = min_elapsed_time/1000, 
      max_time_elapsed = max_elapsed_time/1000, 
      avg_physical_reads = total_physical_reads/execution_count, 
      avg_logical_reads = total_logical_reads/execution_count, 
      execution_count, 
      SUBSTRING(st.text, (qs.statement_start_offset/2) + 1, 
        (
         (
           CASE statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text) 
            ELSE qs.statement_end_offset 
           END 
           - qs.statement_start_offset 
         ) /2 
       ) + 1 
      ) as statement_text 
     FROM sys.dm_exec_query_stats qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st 
    ORDER BY total_worker_time/execution_count DESC 
+0

Estos son protectores de la vida. Podría ver al instante qué consultas no se han podido almacenar en caché. – JakobMillah

Cuestiones relacionadas