你应该能够去通了sys.dm_exec_query_stats动态管理表,它不断对数据库中的所有查询的信息。
SELECT creation_time
,last_execution_time
,total_physical_reads
,total_logical_reads
,total_logical_writes
, execution_count
, total_worker_time
, total_elapsed_time
, total_elapsed_time/execution_count avg_elapsed_time
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY last_execution_time,total_elapsed_time/execution_count DESC;
为您提供了历史上查询花了多长时间的基本计时信息。
很遗憾,你不能升级到SQL Server 2008,它会告诉你这些事情。活动监视器将通过几个标准向您显示顶级查询,允许您查看查询和执行计划。根据各种标准报告可用于顶级查询,表格和索引等。 – 2009-06-05 12:21:53