実行計画はどこから来るのですか?


回答:


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.