답변:
SQL Server 2012에는 계획 자체에 RetrievedFromCache
"true"또는 "false"표시가 있습니다.
이것은 당신이 요구하는 속성 인 것 같습니다.
이것은 샘플입니다 (마지막 줄은 속성을 보여줍니다).
<StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1"
StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound"
StatementSubTreeCost="0.0508992" StatementText="SELECT COUNT(*)

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;