当前位置:Gxlcms > 数据库问题 > SQL SERVER ->> Wait Stats

SQL SERVER ->> Wait Stats

时间:2021-07-01 10:21:17 帮助过:3人阅读

Waits AS ( SELECT wait_type, wait_time_ms / 1000. AS wait_time_s, 100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct, ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn FROM sys.dm_os_wait_stats WHERE wait_type NOT IN (CLR_SEMAPHORE, LAZYWRITER_SLEEP, RESOURCE_QUEUE, SLEEP_TASK, SLEEP_SYSTEMTASK, SQLTRACE_BUFFER_FLUSH, WAITFOR, CLR_AUTO_EVENT, CLR_MANUAL_EVENT) ) -- filter out additional irrelevant waits SELECT W1.wait_type, CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s, CAST(W1.pct AS DECIMAL(12, 2)) AS pct, CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct FROM Waits AS W1 INNER JOIN Waits AS W2 ON W2.rn <= W1.rn GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct HAVING SUM(W2.pct) - W1.pct < 95; -- percentage threshold;

可以通过下面命令reset数据收集

DBCC SQLPERF (sys.dm_os_wait_stats, CLEAR);
GO

 

参考:

https://msdn.microsoft.com/en-us/library/ms179984.aspx

SQL SERVER ->> Wait Stats

标签:

人气教程排行