728x90
쿼리가 느리다면 CPU 자원을 많이 차지하는 쿼리문을 찾아서 쿼리 튜닝을 진행하는 게 좋습니다.
오늘은 데이터베이스에서 실행되는 쿼리의 CPU 사용량을 알아보는 쿼리문에 대해서 알아보겠습니다.
해당 내용에 대한 주석도 잘 달아 놓았니 자신의 데이터베이스에서 실행하여 cpu 자원을 많이 먹고 있는 쿼리를 찾아보시기 바랍니다.
CPU 사용량
CPU 사용량 전체,마지막,최고사용건,실행건수 를 한눈에 보는 쿼리문입니다.
SELECT TOP 10
[Average CPU used] = total_worker_time / qs.execution_count --평균 CPU 사용량
,[Total CPU used] = total_worker_time --CPU 총 사용량
,[Last CPU used] = last_worker_time --마지막 CPU 사용량
,[MAX CPU used] = max_worker_time --최대 CPU 사용량
,[Execution count] = qs.execution_count --실행횟수
,[Individual Query] = SUBSTRING (qt.text,qs.statement_start_offset/2,
(CASE WHEN qs.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE qs.statement_end_offset END - qs.statement_start_offset)/2)
,[Parent Query] = qt.text
,DatabaseName = DB_NAME(qt.dbid) --값이 NULL 이면 서버에 캐쉬되지 않고 즉석해서 만들어진 쿼리(adhoc쿼리).
,qs.creation_time --만들어진 시간
,qs.last_execution_time --마지막 실행시간
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt
--WHERE qt.dbid in('41','42') -- 데이터베이스를 조건문을 줘서 지정할 수 있음
ORDER BY [Average CPU used] DESC;
--[Total CPU used] DESC,
CPU 사용량 보는 쿼리 다운로드
이상으로 CPU 사용량을 확인하는 쿼리문을 통해서 어떤 쿼리가 CPU를 가장 많이 사용하고 있는지 확인하는 방법에 대해서 알아보았습니다.
반응형
그리드형
'IT > MSSQL' 카테고리의 다른 글
하나 이상의 개체가 이 열에 액세스하므로 ALTER TABLE DROP COLUMN weight이(가) 실패했습니다. [컬럼 삭제 오류] (0) | 2021.03.18 |
---|---|
[MSSQL] 예상 실행 계획 확인 & 상세설명 (0) | 2021.03.17 |
[MSSQL] 인덱스(index) 생성, 삭제, 조회, 최적화 (0) | 2021.03.16 |
[MSSQL] BETWEEN 함수 사용법 및 예제 (0) | 2021.03.16 |
[MSSQL] IN 함수 사용법 및 예제 (0) | 2021.03.16 |
댓글