처형 계획은 어디에서 왔습니까?


답변:


9

SQL Server 2012에는 계획 자체에 RetrievedFromCache"true"또는 "false"표시가 있습니다.

이것은 당신이 요구하는 속성 인 것 같습니다.

이것은 샘플입니다 (마지막 줄은 속성을 보여줍니다).

<StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" 
StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" 
StatementSubTreeCost="0.0508992" StatementText="SELECT COUNT(*) 
&#xD;&#xA;FROM sys.tables" StatementType="SELECT" 
QueryHash="0x9A4B63A948B30EA0" QueryPlanHash="0xF357CAE882D5B15D" 
RetrievedFromCache="true">

불행히도 SQL Server 2008 R2에서 생성 된 계획에는 비슷한 내용이 없습니다.

SQL Server 2008 R2에서 sys.dm_exec_query_stats시스템 DMV를 사용하여 값 creation_time이 같은 계획에 대한 열 을 검사 할 수 있습니다 query_hash. 쿼리 해시는 플랜 XML의 헤더에서 얻을 수 있습니다 (위 예 참조). 이 쿼리는 위에서 언급 한 계획과 관련된 행을 반환합니다.

SELECT *
FROM sys.dm_exec_query_stats qs
WHERE qs.query_hash = 0x9A4B63A948B30EA0;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.