DBA - MS SQL 2011/04/22 17:37 posted by 춤추는하현
[활용]
1. 사용중인 서버의 CPU가 높을 경우 문제가 되는 쿼리 추출
[버젼]
MS SQL Server 2005, MS SQL Server 2008
[스크립트]
각 팩터들 중 실제 시스템 영향에 많은 영향을 주는 것은
총 사용된 CPU 타임, 실행 횟수, 최종 실행 시간
위에 세가지 칼럼 정보를 통해 현재 CPU를 많이 잡고 있는 쿼리를 찾아 내야 한다.
Average CPU used - 평균 CPU 사용량
Total CPU used - 총 사용된 CPU 타임
Execution count - 해당 plan이 실행된 횟수
Individual Query - 실제 실행된 plan
Parent Query - 해당 실행 plan이 포함된 쿼리
DatabaseName - 해당 DB명
임시 및 준비된 SQL 문의 경우 NULL입니다
creation_time - 해당 쿼리의 plan 생성 일자
last_execution_time - 최종 실행 시간
SELECT TOP 20
[Average CPU used] = total_worker_time / qs.execution_count
,[Total CPU used] = total_worker_time
,[Last CPU used] = last_worker_time
,[MAX CPU used] = max_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)
,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
ORDER BY [Average CPU used] DESC;
'데이터베이스' 카테고리의 다른 글
MySQL 서버 최적화 하기 (0) | 2021.11.26 |
---|---|
MSSQL 미러링 환경에서 로그 축소 방법 (0) | 2021.11.26 |
SP_LOCK (0) | 2021.11.26 |
Tempdb 사이즈 줄이기 (0) | 2021.11.26 |
CPU 가 홀 수 일 때는 MSSQL 2005 설치 시 서비스 시작 못 한 다고 오류 난다. (0) | 2021.11.26 |