본문 바로가기
MS-SQL

[MSSQL] [DMV] 비용이 드는 쿼리 찾아내기

by 호야호잇 2020. 3. 20.

- DMV(Dynamic Management View) : 동적관리뷰

 

1. 쿼리

 


SELECT TOP 20   
            SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,  
                ((  
                CASE qs.statement_end_offset  
                WHEN -1 THEN DATALENGTH(qt.TEXT)  
                ELSE qs.statement_end_offset  
                END - qs.statement_start_offset)/2)+1) 수행쿼리,  
            qs.execution_count 쿼리계획이_마지막컴파일후_실행횟수,  
            qs.total_logical_reads 쿼리계획이_컴파일후_실행될때_수행한_총논리적읽기수,  
            qs.last_logical_reads 마지막_수행한_논리적읽기수,  
            qs.total_logical_writes 쿼리계획이_컴파일후_실행될때_수행한_총논리적쓰기수,   
            qs.last_logical_writes 마지막_수행한_논리적쓰기수,  
            qs.total_worker_time [쿼리계획이_컴파일후_실행될때_사용된_총CPU시간(마이크로초)],   
            qs.last_worker_time [마지막_실행될때_사용된_CPU시간(마이크로초)],  
            qs.total_elapsed_time/1000000 [실행완료하는데 소요된 총 경과시간(마이크로초)_초로변환],  
            qs.last_elapsed_time/1000000 [최근 실행완료하는데 소요된 경과시간(마이크로초)_초로변환],  
            qs.last_execution_time 해당쿼리가_마지막으로_실행된_시간,  
            qp.query_plan 실행계획  
FROM        sys.dm_exec_query_stats qs  
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt  
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp  
ORDER BY    qs.last_worker_time DESC  

 

 

 

2. 기타

 

1) "VIEW SERVER STATE" 권한 필요.

2) 쿼리 완료될때 마다 통계 업데이트

 

 

 

3. 참고사이트

 

http://blog.sqlauthority.com/2010/05/14/sql-server-find-most-expensive-queries-using-dmv/

http://msdn.microsoft.com/ko-kr/library/ms189741.aspx



출처: https://rocabilly.tistory.com/102 [프로그램이 좋다]

'MS-SQL' 카테고리의 다른 글

MS-SQL 부하쿼리  (0) 2020.09.23
조건절 LIKE 검색 조건(기호 인식)  (0) 2020.07.28
MS-SQL 쿼리팁  (0) 2020.03.13
특정문자 (') 치환법  (0) 2019.12.13
SQL 팁  (0) 2019.11.21