출처 : http://www.flogiston.net/blog/2010/03/01/ms-sql-server-log-slow-queries/
MS SQL 서버 – 로그 슬로우 쿼리
출처 : http://blog.brianhartsock.com/2008/12/16/quick-and-dirty-sql-server-slow-query-log/
이 쿼리는 상위 20 가장 읽기 집중적인 질의를 나열합니다. 어떤 위대한 것은 그것이 총 읽고 기반으로하므로 당신의 시스템에서 최악의 쿼리를 찾을 수있는 신속하고 더러운 방법입니다. 이 목록에서 상위 몇 쿼리를 제거하는 것은 귀하의 책임위한 최상의 플레이를 제공합니다.
이 쿼리는 SQL Server 2005 또는 호환 모드 90 이상에서 실행되는 데이터베이스가 최신이 필요합니다. 그렇지 않으면, 그것은 십자가가 적용 후 구문 오류를 throw합니다.
1 |
SELECT TOP 20 SUBSTRING (qt.text, (qs.statement_start_offset/2)+1, |
2 |
(( CASE qs.statement_end_offset |
3 |
WHEN -1 THEN DATALENGTH(qt.text) |
4 |
ELSE qs.statement_end_offset |
5 |
END - qs.statement_start_offset)/2)+1), |
6 |
qs.execution_count, |
7 |
qs.total_logical_reads, qs.last_logical_reads, |
8 |
qs.min_logical_reads, qs.max_logical_reads, |
9 |
qs.total_elapsed_time, qs.last_elapsed_time, |
10 |
qs.min_elapsed_time, qs.max_elapsed_time, |
11 |
qs.last_execution_time, |
12 |
qp.query_plan |
13 |
FROM sys.dm_exec_query_stats qs |
14 |
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt |
15 |
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp |
16 |
WHERE qt.encrypted=0 |
17 |
ORDER BY qs.total_logical_reads DESC |
Alternative version
1 |
/*Debug query */ |
2 |
SELECT TOP 100 |
3 |
qt.text as QUERY, |
4 |
qs.execution_count, |
5 |
qs.total_logical_reads, qs.last_logical_reads, |
6 |
qs.min_logical_reads, qs.max_logical_reads, |
7 |
qs.total_elapsed_time, qs.last_elapsed_time, |
8 |
qs.min_elapsed_time, qs.max_elapsed_time, |
9 |
qs.last_execution_time, |
10 |
qp.query_plan |
11 |
FROM sys.dm_exec_query_stats qs |
12 |
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt |
13 |
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp |
14 |
WHERE qt.encrypted=0 |
15 |
and qt.text not like ‘/*Debug query */%’ |
16 |
ORDER BY qs.last_execution_time DESC , qs.total_logical_reads DESC |