> 数据库 > SQL Server 2008 >

获取最耗时的存储过程

通过下面的T-SQL,即可轻松获取最耗时的存储过程的信息:

 
  1. SELECT TOP 10 OBJECT_NAME(a.object_id,database_id) SP_Name, DB_NAME(a.database_id) Database_Name, a.cached_time, a.last_execution_time, a.total_elapsed_time,   
  2. a.total_elapsed_time/a.execution_count AS [avg_elapsed_time],  a.execution_count,  a.total_physical_reads/a.execution_count avg_physical_reads,    
  3. a.total_logical_writes,  a.total_logical_writes/ a.execution_count  avg_logical_reads,  a.last_elapsed_time,    
  4. a.total_elapsed_time / a.execution_count   avg_elapsed_time,  b.text,c.query_plan    
  5. FROM sys.dm_exec_procedure_stats AS a  CROSS APPLY sys.dm_exec_sql_text(a.sql_handle)  b    
  6. CROSS APPLY sys.dm_exec_query_plan(a.plan_handle) c  ORDER BY [total_worker_time] DESC;    

(责任编辑:IT)