您现在的位置是:首页 > SQLServer

SQLServer

SqlServer运行时占用高CPU问题查询

2020-11-08 15:23:50 SQLServer admin
经常在论坛看到问高CPU的问题,简单的总结一下。1,首先你要确认,高CPU是不是是SQLSERVER进程引起的还是别的进程引起的,这个很容易,直接看任务管理器。2,如果从任务管理器看出高CPU确实是用SQLSERVER引起的。3,如果是SQ
经常在论坛看到问高CPU的问题,简单的总结一下。
1,首先你要确认,高CPU是不是是SQLSERVER进程引起的还是别的进程引起的,这个很容易,直接看任务管理器。
2,如果从任务管理器看出高CPU确实是用SQLSERVER引起的。
3,如果是SQLSERVER引起的。

3.1SQLSERVER的一个比较BAD的执行计划引起的,比如说缺少必要的INDEX,引起了hashjoin什么的。这个也分成2种:
1,造成高CPU的语句已经执行结束,这个时候可以用下面的语句来检查。
select
highest_cpu_queries.plan_handle,
highest_cpu_queries.total_worker_time,
q.dbid,
q.objectid,
q.number,
q.encrypted,
q.[text]
from
(selecttop50
qs.plan_handle,
qs.total_worker_time
from
sys.dm_exec_query_statsqs
orderbyqs.total_worker_timedesc)ashighest_cpu_queries
crossapplysys.dm_exec_sql_text(plan_handle)asq
orderbyhighest_cpu_queries.total_worker_timedesc