【问题标题】:Get a history of all refreshes of mview in Oracle 11g获取 Oracle 11g 中所有 mview 刷新的历史记录
【发布时间】:2021-07-26 18:10:53
【问题描述】:

在 Oracle12+ 中,可以查询一个名为 dba_mvref_stats 的便捷视图,以查找特定 mview 的所有刷新。我在 Oracle 11g 上遇到了同样的任务,现在我有点卡住了。

有一个类似的问题 (History refresh of materialized view) 但恕我直言,答案没有回答作者的问题,因为ALL_MVIEW_REFRESH_TIMES 反映了基础表的刷新时间并且只保留最新的刷新类型。

我正在寻找的是对“特定 mview 是否有任何完整刷新?”问题的答案。我在预建表(为空)上创建了一个 mview,如果之前没有运行过,我想运行一次 COMPLETE 刷新,或者继续 FAST 刷新。

也许我还有其他选择,所以请随时提出建议。

编辑:问题Materialized Views - Identifying the last refresh 是关于最后一次刷新事件,而我想知道整个刷新历史

【问题讨论】:

  • 如果您刚刚在空表上创建了视图,则在此之后运行完全刷新,否则安排快速刷新。使这项任务复杂化的原因是什么?
  • 问题是 mview 可以通过 2 个不同的作业刷新,我不知道哪个会做。另外它发生在存储过程中,所以我必须放置一个逻辑来检测是否需要完全刷新,否则它会运行快速刷新。
  • @astentx 我想我可以检查all_mviews.last_refresh_type 是否具有NA 值。如果确实如此,则进行完全刷新,否则进行快速刷新。
  • 这能回答你的问题吗? Materialized Views - Identifying the last refresh
  • 好吧,考虑到 11g 已不再受支持......也许更紧迫的问题是升级到受支持的版本......

标签: oracle materialized-views oracle11gr2


【解决方案1】:

看起来像是“如何获得所有刷新的历史记录?”问题的答案。对于 Oracle 11g 是“您不能”,对于 Oracle 12c+ 是“是的,只需查询 (dba/user)_mvref_stats 视图”。

如果是 Oracle 11g,请考虑回答“上次刷新类型/日期是什么?”而不是上面的问题。在这种情况下,您可以查看all_mviews(尤其是last_refresh_type)。

也许有一天它会对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 2021-08-12
    • 2021-02-07
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多