query plan의 실행 옵션 보기


- sql server에 실행되고 있는 query 들의 실제 plan 하고 다르게 테스트 한 plan이 다르게 나타나는 경우가 있다.
- 실제 서버에서 실행되는 옵티마이저가 판단하는 세션에 대한 옵션이 다를 수  있기 때문이다.
- 실행되는 plan_handle 값에 대한 속성 값을 아래 쿼리에서 확인 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT DEQP.query_plan, DEPA.attribute, DEPA.value
FROM sys.dm_exec_cached_plans DECP
  CROSS APPLY sys.dm_exec_query_plan(DECP.plan_handle) AS DEQP
  CROSS APPLY sys.dm_exec_plan_attributes(DECP.plan_handle) AS DEPA
WHERE DECP.plan_handle = (0x0600010069AB592540617182000000000000000000000000)
 
-- 특정 login 에 대한 옵션
SELECT SDEQP.query_plan, SDEPA.attribute, SDEPA.value 
FROM sys.dm_exec_cached_plans SDECP
   INNER JOIN sys.dm_exec_requests SDER ON SDECP.plan_handle = SDER.plan_handle
   INNER JOIN sys.dm_exec_sessions SDES ON SDER.session_id = SDES.session_id
   CROSS APPLY sys.dm_exec_query_plan(SDECP.plan_handle) AS SDEQP
   CROSS APPLY sys.dm_exec_plan_attributes(SDECP.plan_handle) AS SDEPA
WHERE SDES.login_name = 'bora-PC\bora'

'Peformance Tuning' 카테고리의 다른 글

Index IGNORE_DUP_KEY 옵션 TEST  (1) 2015.09.14
파티션 테이블 - 문제점, 주의 사항  (0) 2012.11.19
Dynamic Management Views  (0) 2012.01.22
Hash Join 제약.  (0) 2011.10.10