物化视图上的部分刷新

时间:2018-08-02 12:46:45

标签: oracle refresh partial materialized-views

我们有一个表TB_1,该表具有按月和按周列划分的按月和按周数据。我们还从表MV_1继承了实例化视图TB_1

我们希望按每周或每月刷新一次物化视图。

不确定如何从物化日志中捕获的所有更改中筛选出每周或每月的更改以进行部分刷新。

现在,我们正在考虑在TB_1中有一个标志列。通过清除实例化日志并更新标志,我们认为我们可以实现这一目标。

除了根据特定条件进行部分刷新的过程之外,还有没有其他有效的方法?

1 个答案:

答案 0 :(得分:2)

我们在这里有一个类似的案例:找到的解决方案是partition the materialized view每月(使用PCT)。如果您在许可中将此选项作为一种选择,则可能是一个解决方案。然后,必须对“详细信息表” TB_1和{{1}的“详细信息表” 进行分区。

MV_1

Is it possible to partially refresh a materialized view in Oracle?上还有其他解决方案。

编辑:

我想使用“待刷新”标志进行快速刷新的解决方案值得尝试。不确定是否需要事先清除Mview日志。只需更改要更新的记录的标志值即可。这是我发现的nice howto

如果您有Oracle 12.2, they introduced real-time Mviews,这可能就是您想要的...

  

Oracle 12.2引入了实时实例化视图的概念,该概念允许过时的实例化视图进入语句级,从而使数据在语句中显得新鲜。这种前馈基于使用物化视图日志计算的更改,类似于常规的快速刷新,但是该操作仅影响当前语句。更改不会保留在实例化视图中,因此在某些时候仍需要常规刷新。

realtime mview concept

@ use416,请让我们发布有关您的案例的实际信息。