2010-03-01 98 views
1

是否有可能找出上次访问存储过程的时间?存储过程上次访问时间?

我试过如下:

SELECT * 
FROM sys.dm_db_index_usage_stats 
WHERE [database_id] = DB_ID() 
    AND [object_id] = OBJECT_ID('stored procedure name') 

,它返回一个空结果集。

回答

3

我相信这是可能应该存储过程的仍然是在这一点上,你可以查询sys.dm_exec_query_stats动态管理服务器上的程序缓存。

之后,你就是记录和追踪恐怕。

+0

感谢您的信息。当你最后一次执行SP时,你实际无法查看它是一件令人遗憾的事情。 :O( – 2010-03-01 13:40:28

2

添加日志条目的存储过程的第一行:

insert into dbo.ProcLog (procname, date) values ('MyProc',getdate()) 
+1

@Andomar,我会使用'OBJECT_NAME'(@@ PROCID)'而不是'MyProc',更容易维护。 – 2010-03-01 14:45:39

1

这是您可以在每个过程中放置​​的通用代码行,它将包含正确的过程名称,而无需对其进行硬编码。

INSERT INTO YourLog 
     (RunDate,ProcedureName,...) 
    VALUES 
     (GETDATE(),OBJECT_NAME(@@PROCID),...)