检测sqlserver服务器是否存在CPU瓶颈的方法分享


摘要:
在系统日志中,经常看见由于CPU遇到瓶颈时,导致sqlserver停止对外服务,
下文讲述通过sqlserver动态视图获取CPU瓶颈的方法分享


sqlserver的所有操作都会使用到CPU,我们可以通过提高CPU的性能来降低CPU瓶颈出现的次数,
我们也可以通过改善sql脚本或sql数据存储结构来减少CPU的利用率
————————————–
1 性能监视器
CPU 使用率 如果长期超过80%,代表CPU存在相应的瓶颈,如下图所示:
服务器_cpu使用率查看方法

服务器_cpu使用率查看方法


2 使用sqlserver动态视图(sys.dm_exec_query_stats)查看消耗CPu最大的sql脚本,然后进行相关分析

   select b.*,c.text  from   
(
select a.plan_handle ,
      sum(a.total_worker_time) as [CPU耗时],
      sum(a.execution_count) as [cpu次数],
      count(a.plan_handle) as [执行次数] 
from sys.dm_exec_query_stats  a
group by a.plan_handle
) as b  CROSS  APPLY  sys.dm_exec_sql_text (b.plan_handle) AS  c  
order by [CPU耗时],[cpu次数]   
 
mssql_sqlserver_CPU相关信息查看

mssql_sqlserver_CPU相关信息查看