我最近继承了一个数据库,其中包含数千个存储过程和函数,但是大部分已被弃用且不再使用。
我已经开始一次向存储过程添加一段代码,以便在运行时通知我,但这个过程非常非常手动。
有没有办法开始审核,看看哪些存储过程在下个月或两个月内运行而没有手动为每个存储过程添加一段代码?
谢谢, 埃里克
答案 0 :(得分:0)
我相信您需要使用SQL Server 2005 SP2或更高版本。在SQL Server的早期版本中,OBJECT_NAME函数仅接受object_id的参数。
希望这对您有用:
SELECT DB_NAME(dest.[dbid]) AS 'databaseName'
, OBJECT_NAME(dest.objectid) AS 'procName'
, MAX(deqs.last_execution_time) AS 'last_execution'
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.[TEXT] LIKE '%yourTableName%' -- replace
And dest.[dbid] = DB_ID() -- exclude ad-hocs
GROUP BY DB_NAME(dest.[dbid])
, OBJECT_NAME(dest.objectid)
ORDER BY databaseName
, procName
OPTION (MaxDop 1);