如何识别未使用的表

Sha*_*mad 1 sql-server sql-server-2008-r2

我们计划合并 2 或 3 个使用几乎相同版本的 SQL Server 2008 R2 的区域数据库,为我们的最终用户报告提供精确的表和大多数存储过程......在此过程中,我们试图摆脱所有未使用的可能出于测试目的而创建的对象,以限制我们在生产数据库中看到的内容。所以有 5 或 7 个表是以前的 DBA 创建但不再使用(至少前端应用程序不再使用它),我如何确保没有其他依赖于这些表、触发器或SP?

在我尝试删除备份以外的备份之前,是否有可供我使用的清单,例如上次使用的时间,由谁使用等......?

Aar*_*and 7

由于一个表格可能每年只被引用一次(想想年度报告),并且由于它们可能只在某些开发人员(或您的 CEO)的代码或桌面上的电子表格中被引用,因此这些方法不起作用:

  1. 跟踪数据库以查看在一天/一周/一个月内是否没有引用任何表
  2. 找到一些可靠的方法来确定上次使用表的时间(这并不容易
  3. 搜索代码库

最安全的方法是将您已经通过正常方式(如上述)确定的表重命名为可能不再使用,然后退后查看是否有人抱怨。通过这种方式,如果有人抱怨,您可以很容易地恢复它们(希望任何临时损坏都在低影响区域,否则应该更好地识别这些表)。

但是,根据我的第一句话,您仍然需要等待一个完整的商业周期,然后才能假设没有消息就是好消息。