【发布时间】: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值。如果确实如此,则进行完全刷新,否则进行快速刷新。 -
好吧,考虑到 11g 已不再受支持......也许更紧迫的问题是升级到受支持的版本......
标签: oracle materialized-views oracle11gr2