ALL_TAB_MODIFICATIONS,但对于列

ALL_TAB_MODIFICATIONS, but for columns

我有一个遗留数据库,我能够使用 ALL_TAB_MODIFICATIONS 轻松找到要删除的候选表,这些表不再被使用该数据库的应用程序使用,然后继续更详细地审查这些表并可能删除它们

(我知道不能保证,因此我只称它们为 "candidates for deletion")。

我的问题是,是否有类似的东西可以用来查找未使用的列? 这意味着所有新插入的数据都有 NULL,并且永远不会更新以获得非空值。

如果 Oracle 没有提供类似的视图,您会推荐其他什么方法来找到它们? 由于存储原因,这不是必需的,但因为数据库是开放的,也用于报告目的,我们曾遇到过基于旧列创建报告并因此提供错误结果的情况。

为什么不投入一点点就得到确切的结果呢?

想法是在月初存储 tables 的内容,并在月底重复此操作。 从不同之处可以看出 table 列已被更新或插入更改。您可能会容忍删除引起的更改。

您只需要 space 两倍的数据库,并在报告 SQL 上投入一点。

另请注意,如果列被引用或 select * from 被使用,即使没有积极使用,删除列也可能会使您的申请无效。