物化视图的刷新方式说明

本文详细介绍了物化视图的三种刷新方式:Complete、Fast和Force刷新,强调了Fast刷新的条件及其针对不同类型的物化视图的限制。物化视图在Fast刷新时需满足特定条件,如避免不确定表达式引用,限制GROUP BY和聚集操作的使用,以及对物化视图日志的要求等。文章列举了不同类型的物化视图(如多表关联、聚集、UNION ALL和嵌套)的快速刷新限制条件,帮助读者理解和选择合适的刷新策略。
摘要由CSDN通过智能技术生成

物化视图的刷新方式说明

物化视图可以选择三种不同的刷新方式,根据不同的需求,选择不同的刷新方式。

  • Complete刷新:会删除表中的所有记录(如果是单表刷新,可能会采用Truncate的方式),然后根据物化视图中查询语句的定义重新生成物化视图。
  • Fast刷新:采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中。
  • Force刷新:Oracle自动判断是否满足Fast刷新条件,如果满足则进行Fast刷新,否则进行Complete刷新。

不是所有的物化视图都可以进行Fast刷新,只有满足某些条件的物化视图才具有Fast刷新的能力。根据查询的不同,Fast刷新的限制条件也有所不同,下面是关于Fast刷新针对不同类型的物化视图的限制条件的总结。

  • 1.所有类型的快速刷新物化视图都必须满足的条件:

    • 物化视图不能包含对不确定表达式的引用,如 SYSDATE 和 ROWNUM;
    • 物化视图不能包含对LONG和LONG RAW数据类型的引用。
  • 2.针对只包含多表关联的物化视图的限制条件:

    • 必须满足所有快速刷新物化视图都满足的条件;

    • 不能包括GROUP BY语句或聚集操作;

    • 如果在WHERE语句中包含外连接,那么唯一约束必须存在于连接中内表的连接列上;

    • 如果不包含外连接,那么WHERE语句没有限制,如果包含外连接,那么WHERE语句中只能使用AND连接,并且只能使用“=”操作。

    • FROM语句列表中所有表的 ROWID 必须出现在SELECT语句的列表中。

    • FROM语句列表中的所有表必须建立基于 ROWID 类型的物化视图日志。

      例如:

      -- 1 建立一个可以成功快速刷新的例子,这个物化视图只包含连接: 
      SQL> create materialized view log on dim_a with rowid; -- 物化视图日志已创建。 
      SQL> create materialized view log on dim_b with rowid; -- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值