T-SQL运维脚本——查看SQLServer平均最耗资源时间的SQL语句

  • 可以在MSSM中直接对当前链接右键:活动与监视器 中查看

  • 也可以执行下面的查询语句:

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%'
ORDER BY total_elapsed_time / execution_count DESC;

posted @ 2024-11-06 15:10  shanzm  阅读(8)  评论(0编辑  收藏  举报
TOP