1

我在一个基于 SQL Server 数据库的系统上工作,该数据库已经开发了很多年。它的数据量不是很大(几 GB),但它有很多复杂性(数百个表,数百个存储过程)。

我想从清理不再使用的东西开始。我们有一个每周/每月/每季度/每年的周期,这意味着有些东西一年都不会使用。但是,如果有几个月没有使用的东西的简短列表,我们也许可以通过检查来决定它们是否仍然有用。

我的意图是开始记录对所有数据库对象的访问。我有一些想法,但我想要的是一个日志,我可以把它变成一个没有被使用的东西的列表。我有一些想法,但我需要一些专家的帮助。

编辑:我还想澄清一下,我想查看对表/视图的访问以及存储的过程和函数。

4

3 回答 3

1

这是一个类似的问题,专门询问何时使用存储过程: 如何记录存储过程的频率和上次使用时间?

于 2009-08-03T09:01:09.287 回答
1

您检查sys.dm_db_index_usage_stats:最后一次更新保留在last_user_update列中,最后一次 SELECT 保留在或之一last_user_seek中。请注意,计数器在 SQL Server 启动时重置,因此您需要运行应用程序并对每个功能进行彻底测试以获得相关结果。last_user_scanlast_user_lookup

SP:Starting对于存储过程,您应该启动监视事件的服务器跟踪。TextData运行测试后,再次运行产品的每个功能,停止跟踪并使用 SQL 聚合函数计算跟踪文件中过程名称的不同出现次数。您使用 读取跟踪fn_trace_gettable

于 2009-08-03T14:11:04.227 回答
0

Well SQL profiler would be my suggestion, but you'd need to be careful having that running, because it does introduce a performance overhead when you have a trace running.

于 2009-08-03T08:59:09.260 回答