基于非快速刷新视图快速刷新物化视图

时间:2011-09-19 12:32:24

标签: sql oracle materialized-views

我发现我可以有两个表,并根据加入的表格创建fast refresh on commit materialized view

我想要做的是根据以下内容制作fast refresh on commit物化视图:

(1)加入的表格 (2)一个complete refresh on demand物化视图,它本身基于其他视图(普通视图,即)。

当我尝试这个时,我得到错误ORA-12053,它讨论了from子句中彼此依赖的条目,即使它们显然没有。

我可以通过用普通表替换(2)来解决这个问题,只是在这个表中进行批量插入而不是刷新物化视图。但是,如果没有必要,我宁愿不这样做。

我将尝试研究一个说明错误的最小例子,但是如果你能让我知道我想做什么是可能的(最好是通过一个例子)或者不可能那么好。< / p>

2 个答案:

答案 0 :(得分:0)

请遵循以下事实来理解错误。

  1. Fast Refresh on Commit物化视图按行刷新 基于对基表所做的更改的行。
  2. Refresh Complete on Demand物化视图会被刷新 截断目标表并重新插入所有内容。
  3. 无法刷新上层物化视图,因为 oracle无法跟踪表2上的更改(即刷新完成 物化视图。)

答案 1 :(得分:0)

嵌套的物化视图存在限制。我在this blogpost中描述了它们。 ORA-12053是不满足嵌套MV的第一个限制的结果。使底层MV更复杂(连接,聚合或联合所有MV),是一种解决方案。

的问候,
罗布。