728x90
반응형
SMALL
이번에는 SQL SERVER에서
CPU 점유율 높은 쿼리를
추출하는 방법을
정리해보도록 하겠습니다.
MSSQL에서 CPU 점유율이 높으면
그만큼 서버에 부하가 가고
그만큼 안좋습니다.
그렇기 때문에
이런 쿼리를 추출하여
쿼리를 최적화 하는 것이 좋습니다.
그래서 이번에는
CPU 점유율 높은 쿼리를
확인하는 방법입니다.
쿼리는 다음과 같습니다.
use master; SELECT TOP 20 [Average CPU used] = total_worker_time / qs.execution_count ,[Total CPU used] = total_worker_time ,[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) FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt ORDER BY [Total CPU used] DESC, [Average CPU used] DESC;
위처럼 쿼리를 작성하여
실행을 해주시면 되십니다.
위 쿼리는 우선
master 계정으로 옮기고
마스터에서 쿼리를 돌려서
CPU 점유율 높은 쿼리
상위 20개를 추출해는 것입니다.
실행을 하면
결과는 아래와 같이 나오게 됩니다.
위처럼 나오게 됩니다.
CPU 점유율이 높은 것부터 해서
상위 20개에 대해서
추출이 된 것입니다.
더 많은 쿼리를 원하신다면
TOP 부분을 수정해 주시면 되십니다.
나온 결과에서 쿼리부분은
숨겼습니다.
제가 운영하는 서버의 쿼리이기 때문에
숨겼습니다.
그러면 이런 쿼리를
튜닝해주시면 되실 것 같습니다.
오늘은 MSSQL 에서
CPU 점유율 높은 쿼리 추출하는 방법이였습니다.
이런 방법으로 추출하여
서버의 부하를 줄여주면 좋겠습니다.
이상으로 SQL SERVER에서의
CPU 점유율 높은 쿼리 추출하는 방법이였습니다~
728x90
반응형
LIST