SQL Server 쿼리가 느려졌을 때 본문
운영환경에서 데이터가 증가하면서 혹은 통계업데이트에 의해 실행계획이 변경되어 쿼리가 갑자기 이전보다 확 느려질 수 있다.
아래와 같은 방법으로 실행계획을 확인할 수 있다.
1) 문제의 쿼리 찾기
--spid 찾기
select hostname, hostprocess, spid
from master..sysprocesses
where hostname = '호스트네임'
SELECT client_net_address, session_id
FROM sys.dm_exec_connections
WHERE client_net_address = 'IP'
--실행중인 쿼리 확인
SELECT
sqltext.TEXT,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time,
req.blocking_session_id,
req.percent_complete,
req.plan_handle -- 실행계획 확인할 때 사용
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
where req.session_id = SPID
2) 실행계획 확인하기
SELECT * FROM sys.dm_exec_query_plan (req.plan_handle);
3) 예상 실행계획 삭제
DBCC FREEPROCCACHE (0x06000700A9F6B63640212E7B280000000000000000000000)
4) 캐시에 실행계획이 삭제되었는지 확인
SELECT TOP 10 UseCounts, Cacheobjtype, Objtype, TEXT, query_plan
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
5) 문제의 쿼리 재수행
위 방법으로도 해결이 되지 않는다면 실행계획을 분석하여 쿼리 실행에 부하요소를 주는 근본적인 원인을 찾아야 한다.
'SQL Server > SQL Server 운영' 카테고리의 다른 글
SQL Server 백업/복원 예상 완료시간 확인하기 (0) | 2021.01.14 |
---|---|
SQL Server 대용량 테이블 인덱스 생성 진행경과 확인하기 (0) | 2021.01.14 |
SQL Server 데이터 Data Compression (0) | 2019.10.28 |
SSISDB 이동 (0) | 2019.09.23 |
SQL Server Configuration manager 창이 안 열릴때 (0) | 2019.09.17 |