[펌] MS-SQL 튜닝TIP

출처 : 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

댓글 남기기