【问题标题】:how to get last accessed date of a table in db2 z o/s?如何在 db2 z o/s 中获取表的最后访问日期?
【发布时间】:2021-07-27 13:33:46
【问题描述】:

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

【问题讨论】:

    标签: db2-zos


    【解决方案1】:

    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 天。

    【讨论】:

    • 目前我们正在使用 sysibm.sysindexspacestats 表中的 lastused 列来获取表的最后访问日期。但这里唯一的问题是我们将获得具有索引​​的表的访问详细信息。对于没有索引的表,我们不会得到上次访问日期
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2011-03-13
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多