赞
踩
因为各种原因数据库中存在大量无用的存储过程,想查询存储过程的最后执行情况,处理长期不使用的存储过程。
下列语句利用系统自带的视图数据表,查询存储过程的最后执行情况:
- --查询数据库的信息
- 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、在存储过程中添加语句,更新日志表。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。