MS SQL2005 How to find the top 50 cpu execution time.
时间:2010-08-27 来源:Darren Xie
Technorati 标签: MS SQL,TOP CPU
最近发生了很苦烦的事情,DB性能急剧下降,MES中所有的提交操作频频超时,当然排除了种种原因之外,数据库才是真正的问题所在,这个需要DBA处理,可是我们的DBA不在,只能杀掉进程.
服务器的CPU占用一直高居不下,想了很多,最后还是想看看是执行什么操作造成?
这次还整出了以下关于DB使用CPU的情况,以做分析,可以看到执行什么SQL语句时用的CPU最多,以进一步优化,好一切从简,以下出代码和图:
SELECT TOP 50 total_worker_time/execution_count AS [Avg CPU Time]
,(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN
statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC
在此写下只是为了记录一下,以防忘记,也同时分享一下,当然用过的人可能很多,但是我是头一次应用.
很久没有写了,不知怎样表达.闪人!
本文原创,转载请注明出处.
相关阅读 更多 +