没有合适的资源?快使用搜索试试~ 我知道了~
首页sqlserver cpu使用率高排查
sqlserver cpu使用率高排查
需积分: 50 1.5k 浏览量
更新于2023-05-27
评论 1
收藏 308KB DOCX 举报
平常在使用sqlserver中,有时会出现 CPU使用达到 100% 的情况,该文档描述了如何从几个方面查找。
资源详情
资源评论
资源推荐

问题原因
RDS for SQL Server 实例在日常使用中,有时会出现 CPU 使用达到 100% 的情况。RDS
控制台提供“监控与报警”功能,以便实时监控实例 CPU 使用情况。
RDS for SQL Server CPU 使用率高的因素有很多,其中最常见的是应用的负载高,查询
语句的成本高,或者是实例的并行度设置不合理,使得 CXPACKET 等待特别多,造成
CPU 使用率高。
1. Max degree of Parallelism 设置不合理
2. 应用负载高
3. 查询语句的读写高
4. 避免出现 CPU 使用 100%的一般原则
问题排查
1.Max degree of Parallelism 设置不合理
并行的执行计划,多线程处理时,由于每个线程处理的数据量不一致,会出现
CXPACKET 等待情况,CXPACKET 等待发生比较多的话,造成 CPU 使用率高。可以通
过 SQL Server Management Studio 的活动监视器或者下面语句(多次执行取差值),监
控是否存在大量 CXPACKET 等待。
1. WITH [Waits] AS
2. (SELECT
3. [wait_type],
4. [wait_time_ms] / 1000.0 AS [WaitS],
5. ([wait_time_ms] - [signal_wait_time_ms]) / 1000.0 AS
[ResourceS],
6. [signal_wait_time_ms] / 1000.0 AS [SignalS],
7. [waiting_tasks_count] AS [WaitCount],
8. 100.0 * [wait_time_ms] / SUM ([wait_time_ms]) OVER() AS
[Percentage],
9. ROW_NUMBER() OVER(ORDER BY [wait_time_ms] DESC) AS
[RowNum]
10. FROM sys.dm_os_wait_stats
11. WHERE [wait_type] NOT IN (
12. N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR',
13. N'BROKER_TASK_STOP', N'BROKER_TO_FLUSH',
14. N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
15. N'CHKPT', N'CLR_AUTO_EVENT',
16. N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE',
17. -- Maybe uncomment these four if you have mirroring
issues
18. N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE',
19. N'DBMIRROR_WORKER_QUEUE', N'DBMIRRORING_CMD',
20. N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
21. N'EXECSYNC', N'FSAGENT',
22. N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0