有没有办法确定(事后或过去 X 时间范围内)每个存储过程、函数或视图在数据库中被调用了多少次?存储过程的最大/最后运行日期是什么时候?
基本上我想说
Use databaseABC
select procedurename, count(howManyTimesItsBeenCalled), max(lastRunDate)
from the databseABC
查看 sys.dm_exec_procedure_stats。这为您提供了自上次服务器重新启动以来的统计信息。如果您需要它们在重新启动后保持不变,您可以创建一个表和一个小代理作业来经常运行(或作为重新启动协议的一部分)。不幸的是,您无法给出具体的时间范围。如果你需要它,你就必须自己滚动一些东西。
我不知道有什么方法可以确定视图的使用频率。如果您正在谈论特定的表,您可以查看
sys.dm_db_index_usage_stats