SQL Server最耗时的语句统计

SELECT (total_elapsed_time / execution_count) / 1000 N'平均时间ms',
       total_elapsed_time / 1000     N'总花费时间ms',
       total_worker_time / 1000      N'所用的CPU总时间ms',
       total_physical_reads          N'物理读取总次数',
       total_logical_reads / execution_count N'每次逻辑读次数',
       total_logical_reads           N'逻辑读取总次数',
       total_logical_writes          N'逻辑写入总次数',
       execution_count               N'执行次数',
       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
       )                             N'执行语句',
       creation_time                 N'语句编译时间',
       last_execution_time           N'上次执行时间'
FROM   sys.dm_exec_query_stats    AS qs
       CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE  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
       ) NOT LIKE 'fetch%'
       AND last_execution_time > '2020-05-18 00:00'
ORDER BY 
       total_elapsed_time / execution_count DESC;

 
 

 

posted @ 2023-01-04 15:47  火军刀  阅读(96)  评论(0编辑  收藏  举报