본문 바로가기

반응형
Notice
Recent Posts
Link
Calendar
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total
Today
관리 메뉴

SQL Server 쿼리가 느려졌을 때 본문

SQL Server/SQL Server 운영

SQL Server 쿼리가 느려졌을 때

BinaryNumber 2021. 1. 14. 15:36
반응형

운영환경에서 데이터가 증가하면서 혹은 통계업데이트에 의해 실행계획이 변경되어 쿼리가 갑자기 이전보다 확 느려질 수 있다.

 

아래와 같은 방법으로 실행계획을 확인할 수 있다.

 

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) 문제의 쿼리 재수행

 

위 방법으로도 해결이 되지 않는다면 실행계획을 분석하여 쿼리 실행에 부하요소를 주는 근본적인 원인을 찾아야 한다.

반응형
Comments