因为各种原因数据库中存在大量无用的存储过程,想查询存储过程的最后执行情况,处理长期不使用的存储过程
下面这条语句可以查询存储过程创建 修改和执行的最后时间:
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
WHERE a.is_ms_shipped =0 --去掉系统存储过程
ORDER BY a.create_date desc,a.modify_date desc
sqlserver 中比较常用的系统视图:
select * from INFORMATION_SCHEMA.TABLES 查询数据库中有哪些表 / 视图
select top 1000 * from [sys].[all_objects] 查询数据库中所有对象 表 视图 存储过程 主键 等都在里面
select top 1000 * from [sys].[all_views] 查询数据库中所有视图
select top 1000 * from [sys].[columns] 查询数据库中所有列,可以用来检查列长度 等
sqlserver 中比较常用的系统存储过程:
exec sys.sp_helptext 'dbo.Find_Lock' 查询对象的创建语句