首页 > 解决方案 > 如何获取 db2 zo/s 中表的最后访问日期?

问题描述

该计划是识别 db2 zo/s 中未使用的表,有什么方法可以获取 db2 zo/s 中每个表的最后访问日期。[在 db2 LUW 中,我们在 syscat.tables 中有 last_used 列,但在 db2 zo/s 中,我们在 sysibm.systables 中没有任何最后使用的列]

标签: db2-zos

解决方案


Db2 zOS 不会将此类信息保留在目录表中,您可能真的不希望 Db2 从性能开销(尽管它很小)和 MIPS 消耗的角度为每个单独的访问不断更新此类信息到目录中.

另一方面,有一些方法可以识别未使用的表。

如果您知道所有表都假设已更新(插入/删除/更新),系统上没有只读表,那么您可以监控 SYSTABLESPACESTATS(这是实时统计表,您可以发出 ACCESS DB 命令来转储它或让 Db2 转储它在某些条件下)一段时间,如 30 天或 90 天,以潜在地识别哪些表不再使用,然后将其标记为候选,为了安全,不要立即删除它。

如果某些未使用的表可以只读并且您想识别,则可能必须使用 AUDIT 跟踪来监视表上的 FIRST READ。为此,您还需要确保您的表不处于 AUDIT NONE/CHANGES 状态,如果某些表处于 AUDIT NONE/CHANGES 状态,您可以发出 ALTER TABLE 将它们更改为 AUDIT ALL,然后打开AUDIT 跟踪(143 和 144)可监控 30 天或 90 天的访问。


推荐阅读