首页 > 代码库 > MS SQL Server 如何得到执行最耗时的前N条T-SQL语句-

MS SQL Server 如何得到执行最耗时的前N条T-SQL语句-

--得到最耗时的前N条T-SQL语句   
  
--适用于SQL SERVER 2005及其以上版本   
  
--给N赋初值为30   
declare @n int set @n=30   
  
;with maco as   
(     
    select top (@n)  
        plan_handle,  
        sum(total_worker_time) as total_worker_time ,  
        sum(execution_count) as execution_count ,  
        count(1) as sql_count  
    from sys.dm_exec_query_stats group by plan_handle  
    order by sum(total_worker_time) desc  
)  
select  t.text ,  
        a.total_worker_time ,  
        a.execution_count ,  
        a.sql_count  
from    maco a  
        cross apply sys.dm_exec_sql_text(plan_handle) t  
          
/* 结果格式如下  
text     total_worker_time  execution_count   sql_count  
-------- ------------------ ----------------- ---------   
内容略  
*/