MS SQL2005 How to find the top 50 cpu execution time.

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

 

在此写下只是为了记录一下,以防忘记,也同时分享一下,当然用过的人可能很多,但是我是头一次应用.

很久没有写了,不知怎样表达.闪人!

本文原创,转载请注明出处.

原文地址:https://www.cnblogs.com/yiyumeng/p/1810426.html