数据库服务器CPU使用率高的通用分析和处理

【症状描述】
数据库服务器的CPU使用率持续维持在高位运行,全员使用系统卡慢,平时使用很快的功能,也出现变慢很多的情况,如下图,查看任务管理器,如下图所示:

发现占用资源的是数据库服务的进程sqlserver.exe。
如若不是,系统管理员可按占用资源的进程名称,百度搜索方案,做通用的检查处理。
【问题分析与排查】
1. 查看资源被谁用了。
在数据库服务器,一般出现CPU使用情况持续维持在高位(大于90%)运行的情况,引发的进程很可能是sqlserver.exe进程,可查看任务管理器进行核实。
2. 查看资源何时被占用的。
系统管理员登录管理中心,通过管理员主页,分析CPU使用率暴涨的时间点

系统管理员登录业务中心,结合上机操作日志,分析是否有业务操作,会用到大量的CPU资源来做计算。

分析CPU持续高位运行,是否有这些操作进行:成本计算,存货核算,结账,MRP运算,大数据量的引出等
另外,大数据量的引出的情况,可通过查看引出操作记录列表,根据记录的情况来判断。

【精确分析与处理】
通过查询耗费CPU资源排名查询语句,对结果进行分析,获取排名信息的sql语句如下:
SELECT TOP(20) DB_NAME(t.[dbid]) AS [Database Name], LEFT(t.[text], 50) AS [Short Query Text],
qs.total_worker_time AS [Total Worker Time], qs.min_worker_time AS [Min Worker Time],
qs.total_worker_time/qs.execution_count AS [Avg Worker Time],
qs.max_worker_time AS [Max Worker Time],
qs.min_elapsed_time AS [Min Elapsed Time],
qs.total_elapsed_time/qs.execution_count AS [Avg Elapsed Time],
qs.max_elapsed_time AS [Max Elapsed Time],
qs.min_logical_reads AS [Min Logical Reads],
qs.total_logical_reads/qs.execution_count AS [Avg Logical Reads],
qs.max_logical_reads AS [Max Logical Reads],
qs.execution_count AS [Execution Count], qs.creation_time AS [Creation Time]
,t.[text] AS [Query Text], qp.query_plan AS [Query Plan] -- uncomment out these columns if not copying results to Excel
FROM
数据库服务器CPU使用率高的通用分析和处理
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



