2012. 1. 29. 20:51

query plan의 실행 옵션 보기


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

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