标签:wait 系统 state text 语句 spro desc 也会 lock
--查询编译以来 cpu耗时总量最多的前50条(Total_woker_time)2.数据库CPU很高,查询问题的SQL,根据时间“等待毫秒”,查出问题的SQL SELECT spid, blocked, DB_NAME(sp.dbid)
AS DBName, program_name, waitresource, sp.waittime 等待毫秒, sp.stmt_start,
lastwaittype, sp.loginame, sp.Status, sp.hostname, a.[Text] AS [TextData],
SUBSTRING(A.text, sp.stmt_start / 2, (CASE WHEN sp.stmt_end = -1 THEN
DATALENGTH(A.text) ELSE sp.stmt_end END - sp.stmt_start) / 2) AS [current_cmd]
FROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS
A WHERE spid > 50 --and lastwaittype=‘HADR_SYNC_COMMIT‘ AND Status<>‘sleeping‘
ORDER BY sp.waittime desc;
3.案例分享
SQL Server导致CPU爆高,一般是异常SQL引起,怀疑是服务器的磁盘性能问题,停SQL服务,用测试一下磁盘的性能,磁盘性能的确不怎样,但是也没差到这样的地步。后来发现一条查询SQL,有3亿条,查询taskid字段没有索引,导致查询IO很慢,进而影响CPU爆高。后重建一张新的tb_log表,并在taskid字段加上索引,性能问题解决。
Performance analysis of SQL Server — about CPU
标签:wait 系统 state text 语句 spro desc 也会 lock
原文地址:https://blog.51cto.com/songlihuan/2481125