Oracle - Materialized View,这个MV可以快速刷新吗?

时间:2011-08-04 13:41:32

标签: oracle oracle10g materialized-views

我有一个看起来有点像下面的物化视图,我想知道是否还有这个物化视图'快速'可刷新?基本上,我问的是:

  1. 物化视图是否包含oracle功能,例如COALESCE,NVL,NVL2等,并且仍然可以快速刷新

  2. 物化视图是否包含我已经制作的功能,并且仍然可以快速刷新。

  3. 实体化视图是否可以包含派生表的连接并且仍然可以快速刷新?

  4. 我检查了Oracle documentation有关此问题,并没有列出这些限制,但是在我自己的系统上测试下面的情况之后,我相信它是可能的。< / p>

    Oracle版本:10g

    SELECT COALESCE (col1, col2),
           myOracleFunction(col3, col4)
      FROM tableA a 
           LEFT OUTER JOIN
           (SELECT   id, MAX (sample_key) prim_sam_key
                FROM table_sample
            GROUP BY id
              HAVING COUNT (1) = 1) b ON a.id = b.id;
    

1 个答案:

答案 0 :(得分:2)

您遗失的link you provided的要求:

  
      
  • 必须指定COUNT(*)。
  •   
  • SELECT列表必须包含所有GROUP BY列。
  •   

此外,以下要求表明,对于您的查询,只有在table_sample更新后才能进行快速刷新,但tableA尚未更新:

  
      
  • 具有外连接的物化聚合视图可快速刷新   在常规DML和直接加载之后,仅提供外表   已被修改。此外,连接必须存在唯一约束   内连接表的列。如果有外连接,那么全部   连接必须通过AND连接,并且必须使用相等(=)   操作者。
  •   

最后,在询问物化视图时,最好准确说明您创建的物化视图日志。