我有一个存储过程,它不是经常运行。所以我想找到该存储过程的最后执行日期。
我使用了这个查询:
select distinct
s.last_execution_time
from
sys.dm_exec_query_stats s
cross apply
sys.dm_exec_query_plan (s.plan_handle) p
where
object_name(p.objectid, db_id('My_Db_Name')) = 'MY_Sp_Name' `
它不返回任何输出。那么,是否有其他方法可以检查存储过程在上个月运行的天气?
提前致谢
参考: https://msdn.microsoft.com/en-us/library/cc280701.aspx
sys.dm_exec_procedure_stats可能会让最后一次运行更长时间,但我不确定它何时清除。 试试这个,看看它是否显示你上次的执行:
SELECT
p.object_id
,d.database_id
,p.name
,d.cached_time
,d.last_execution_time
,d.total_elapsed_time
,d.total_elapsed_time/d.execution_count AS [avg_elapsed_time]
,d.last_elapsed_time
,isnull(d.execution_count, 0) as ExecCount
,p.create_date as CreateDate
,p.modify_date as ModifyDate
FROM
sys.procedures p
left join
sys.dm_exec_procedure_stats AS d
on d.object_id = p.object_id
WHERE
is_ms_shipped = 0
ORDER BY
create_date asc;