Itu tidak disimpan di sys.dm_exec_cached_plans
, juga tidak dimakamkan di mana saja dalam XML rencana yang dapat saya temukan. Namun ada informasi yang berguna dalam DMV lain.
Untuk prosedur tersimpan, kami dapat memperoleh waktu ketika sebuah rencana di-cache dari 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);
Untuk kueri ad-hoc, ada waktu pembuatan di 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);
Menurut @SqlKiwi ... perubahan dari creation_time ke cached_time hanya karena prosedur dan pemicu ditambahkan pada 2008 dan kesempatan diambil untuk memilih nama yang lebih deskriptif. Waktu yang dibuat / di-cache mencerminkan kompilasi terakhir, bukan waktu pembuatan rencana asli.