oracle物化视图日志系列(一)

oracle物化视图日志系列(一)
1,基于物化视图日志,实现增量刷新,如无,则重新执行查询模块,进行全量刷新
2,如要实现增量刷新,必须为查询模块所有引用的表构建物化视图日志
3,增量刷新比全量刷新花费时间要少得多

有2种类型的物化视图日志:基于时间戳和基于提交时产生的scn.
如采用前者,使用时间戳并且
需要进行一些配置操作.而后者使用提交时产生的SCN,不用配置操作,
因此提升了刷新的速度.如指定commit scn子句会创建基于scn的物化视图日志,
否则创建基于时间戳的物化视图日志

只有新创建的物化视图日志可以使用commit scn,已创建的物化视图日志不能变更
添加commit scn,除非删除重建

语法:
CREATE MATERIALIZED VIEW LOG ON [ schema. ] table
  [ physical_attributes_clause
  | TABLESPACE tablespace
  | logging_clause
  | { CACHE | NOCACHE }
  ]...
  [ parallel_clause ]
  [ table_partitioning_clauses ]
  [ WITH [ { OBJECT ID
         | PRIMARY KEY
         | ROWID
         | SEQUENCE
         | COMMIT SCN
         }
           [ { , OBJECT ID
             | , PRIMARY KEY
             | , ROWID
             | , SEQUENCE
             | , COMMIT SCN
             }
           ]... ]
    (column [, column ]...)
    [ new_values_clause ]
  ] [ mv_log_purge_clause ]
;

--上述各子句语法构成
new_values_clause::=
{ INCLUDING | EXCLUDING } NEW VALUES

mv_log_purge_clause::=

PURGE { IMMEDIATE [ SYNCHRONOUS | ASYNCHRONOUS ]
      | START WITH datetime_expr [ NEXT datetime_expr
                                 | REPEAT INTERVAL interval_expr
                                 ]
      | [ START WITH datetime_expr ] { NEXT datetime_expr
                                     | REPEAT INTERVAL interval_expr
                                     }
      }


WITH Clause
1,此子句标示master table row record变化时到底到底记录pk,object id,sequence,rowid或其混合体.
  也可用此子句添加序列到物化视图日志,为其记录提供额外的排序信息
2,也控制是否记录物化视图中的过滤列,即在物化视图子查询中引用的非主键列,或子查询多表关联的
  连接列(也是非主键列)
3,默认为主键列
4,object id仅适用于对象表;表明记录系统生成或用户定义的对象表
5,rowid表示记录变化的rowid存储到物化视图日志
6,sequence可以提供增量刷新,

COMMIT SCN
如未指定commit scn子句,默认启用基于时间戳,需要执行一些配置操作.而commit scn不用这些操作提升
刷新速度.

可以为基于scn的物化视图日志的master table创建下列类型的本地物化视图(包括on commit和on demand)

聚集物化视图,包含基于单表的聚集物化视图
Materialized aggregate views, including materialized aggregate views on a single table
 
联结物化视图
Materialized join views
 
基于PK和基于ROWID的单表物化视图
Primary-key-based and rowid-based single table materialized views
 
通过union all联结上述类型物化视图的物化视图
UNION ALL materialized views, where each UNION ALL branch is one of the above materialized view types
 
记住:不能为创建了基于scn物化视图日志的master table创建远程物化视图
You cannot create remote materialized views on master tables with commit SCN-based materialized view logs.

commit scn一些操作限制
Restrictions on COMMIT SCN The following restrictions apply to COMMIT SCN:
不支持表中包含多个lob列否则报ora-32421
Use of COMMIT SCN on a table with one or more LOB columns is not supported and causes ORA-32421.
 
如创建不同类型(即基于scn和基于时间戳)物化视图日志类型的物化视图不能支持会报ora-32421
Creating a materialized view on master tables with different types of materialized view logs
(that is, a master table with timestamp-based materialized view logs and a master table with
commit SCN-based materialized view logs) is not supported and causes ORA-32414.
 
column表明如记录发生变化时,记录这些记录哪些列到物化视图日志中,一般是filter columns或join columns
column Specify the columns whose values you want to be recorded in the materialized view log
for all rows that are changed. Typically these columns are filter columns and join columns.
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-754587/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-754587/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值