我正在使用SQL Server 2000数据库,该数据库可能有几十个不再访问的表.我想清除我们不再需要维护的数据,但我不确定如何识别要删除的表.
数据库由几个不同的应用程序共享,因此我无法100%确信审阅这些应用程序将为我提供所使用对象的完整列表.
如果可能的话,我想做的是获取一段时间内根本没有访问过的表的列表.没有读,没有写.我该怎么做呢?
MSSQL2000不会给你那种信息.但是,一种可以识别使用哪些表(然后推断出哪些表不是)的方法是使用SQL事件探查器来保存转到某个数据库的所有查询.配置探查器以将结果记录到新表,然后检查保存在那里的查询以查找应用程序使用的所有表(以及视图,sps等).
我认为你可以检查是否有任何"写入"的另一种方法是向每个表添加一个新的时间戳列,以及每次有更新或插入时更新该列的触发器.但请记住,如果您的应用程序执行该类型的查询
select * from ...
然后他们会收到一个新专栏,这可能会给你带来一些问题.