본문 바로가기
IT/MSSQL

[MSSQL] CPU 사용량 조회, 마지막, 최고 사용건, 실행건수

by 베베야 2021. 3. 16.
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 사용량 전체 조회.txt
0.00MB

 

이상으로 CPU 사용량을 확인하는 쿼리문을 통해서 어떤 쿼리가 CPU를 가장 많이 사용하고 있는지 확인하는 방법에 대해서 알아보았습니다.

 

반응형
그리드형

댓글