それはに保存されておらずsys.dm_exec_cached_plans
、私が見つけることができる計画XMLのどこにも埋もれていません。ただし、他のDMVには有用な情報があります。
ストアドプロシージャの場合、プランがキャッシュされた時間を取得できますsys.dm_exec_procedure_stats
。
SELECT TOP(250)
p.name AS [SP Name]
, ps.execution_count
, ps.cached_time
FROM
sys.procedures p WITH (NOLOCK)
INNER JOIN
sys.dm_exec_procedure_stats ps WITH (NOLOCK)
ON p.[object_id] = ps.[object_id]
WHERE
ps.database_id = DB_ID()
ORDER BY
ps.cached_time DESC
OPTION
(RECOMPILE);
アドホッククエリの場合、作成時間はsys.dm_exec_query_stats
次のとおりです。
SELECT TOP(250)
st.[text] AS [QueryText]
, qs.execution_count
, qs.creation_time
FROM
sys.dm_exec_cached_plans cp WITH (NOLOCK)
INNER JOIN
sys.dm_exec_query_stats qs WITH (NOLOCK)
ON qs.plan_handle = cp.plan_handle
CROSS APPLY
sys.dm_exec_sql_text(cp.plan_handle) st
WHERE
cp.objtype = N'Adhoc'
ORDER BY
qs.creation_time DESC
OPTION
(RECOMPILE);
@SqlKiwi ...によると、creation_timeからcached_timeへの変更は、2008年にプロシージャとトリガーが追加され、よりわかりやすい名前を選択する機会を得たためです。作成/キャッシュされた時間は、元の計画の作成時間ではなく、最後のコンパイルを反映しています。