SqlServer 使用sys.dm_exec_query_stats查看开销较高的语句

SQL语句统计信息查询

SELECT TOP 10 total_worker_time / 1000 AS [自编译以来执行所用的CPU时间总量(ms)],
	   total_elapsed_time/1000 as [完成执行此计划所用的总时间],
	   total_elapsed_time / execution_count/1000 as [平均完成执行此计划所用时间],
       execution_count  as [上次编译以来所执行的次数],    
	   creation_time as [编译计划的时间],
       deqs.total_worker_time / deqs.execution_count / 1000 AS [平均使用CPU时间(ms)],
       last_execution_time AS [上次开始执行计划的时间],
	   total_physical_reads [编译后在执行期间所执行的物理读取总次数],
	   total_logical_reads/execution_count [平均逻辑读次数],
	   min_worker_time /1000 AS [单次执行期间所用的最小CPU时间(ms)],
       max_worker_time / 1000 AS [单次执行期间所用的最大 CPU 时间(ms)],
       SUBSTRING(dest.text, deqs.statement_start_offset / 2 + 1,          
	   (CASE
         WHEN deqs.statement_end_offset = -1 THEN
          DATALENGTH(dest.text)          
         ELSE deqs.statement_end_offset
       END - deqs.statement_start_offset
	   ) / 2 + 1) AS [执行SQL], 
       dest.text as [完整SQL],
       db_name(dest.dbid) as [数据库名称],
       object_name(dest.objectid, dest.dbid) as [对象名称]
	   ,deqs.plan_handle [查询所属的已编译计划]
  FROM sys.dm_exec_query_stats deqs WITH(NOLOCK)
 CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest

 --平均使用CPU时间降序
 ORDER BY (deqs.total_worker_time / deqs.execution_count / 1000) DESC
 --执行时间降序
 --ORDER BY total_elapsed_time / execution_count DESC;

平均使用CPU时间降序
在这里插入图片描述
执行时间降序
在这里插入图片描述
查看执行计划

select * from sys.dm_exec_query_plan(0x05000A0045E84551103903112400000001000000000000000000000000000000000000000000000000000000)

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值