使用SQL Server 2005探查,你跟踪哪些事件,列和筛选找到你最慢的查询和存储过程?
慢=大于N秒,10为自变量的缘故。
使用SQL Server 2005探查,你跟踪哪些事件,列和筛选找到你最慢的查询和存储过程?
慢=大于N秒,10为自变量的缘故。
在SQL 2005,您可以使用管理视图找到运行较慢的查询。 一个好剧本,我发现对前一段时间的SQL服务器的性能将帮助你开始; 它列出了最慢的执行第一数据。
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 total_elapsed_time / execution_count DESC;
以前我用的探查,我检查了内置使用情况报告。 右击数据库,报告,标准报告,那么目标执行统计。
它列出了当前缓存的执行计划,与资源的数量和他们已经运行的次数一起。 这通常提供了有关什么是保持服务器繁忙的一个非常好的主意。
持续时间列会为我,但有时我看的读取和写入过列。
我用的是TSQL:StmtCompleted事件过滤器,以获得原始查询。 您可能要添加其他像存储过程是,但TSQL是“基地”您需要查看。 正如MSDN文章说:
“存储过程的执行可以由SP进行监控:开始,SP:StmtStarting,SP:StmtCompleted事件,和SP:完成事件类和所有的TSQL事件类”。