SqlServer 查询存储过程最后执行时间

  因为各种原因数据库中存在大量无用的存储过程,想查询存储过程的最后执行情况,处理长期不使用的存储过程。


下列语句利用系统自带的视图数据表,查询存储过程的最后执行情况:

--查询数据库的信息
SELECT database_id,* FROM sys.databases WHERE database_id> 4


SELECT 
	a.name AS 存储过程名称,
	a.create_date AS 创建日期,
	a.modify_date AS 修改日期,
	b.last_execution_time AS 最后执行日期,
	b.execution_count AS 执行次数
FROM sys.procedures a 
LEFT JOIN sys.dm_exec_procedure_stats b ON a.object_id = b.object_id AND b.database_id ='上面查询的数据库ID'
WHERE a.is_ms_shipped =0 --去掉系统存储过程
ORDER BY b.database_id



注意:数据库版本为2008,上述语句只能查询缓存内的存储过程的最后执行时间。


建议:如果要查询所有的存储过程的最后执行时间,最好开发相关的日志表来记录。

   1、间隔查询 sys.dm_exec_procedure_stats 表的数据更新日志表。

   2、在存储过程中添加语句,更新日志表。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值