欢迎来到天天文库
浏览记录
ID:9941290
大小:287.72 KB
页数:20页
时间:2018-05-16
《物化视图日志简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、oracle物化视图日志结构 物化视图的快速刷新要求基本必须建立物化视图日志,这篇文章简单描述一下物化视图日志中各个字段的含义和用途。 物化视图日志的名称为MLOG$_后面跟基表的名称,如果表名的长度超过20位,则只取前20位,当截短后出现名称重复时,Oracle会自动在物化视图日志名称后面加上数字作为序号。 物化视图日志在建立时有多种选项:可以指定为ROWID、PRIMARYKEY和OBJECTID几种类型,同时还可以指定SEQUENCE或明确指定列名。上面这些情况产生的物化视图日志的结构都不相同。
2、 任何物化视图都会包括的4列:SNAPTIME$$:用于表示刷新时间。DMLTYPE$$:用于表示DML操作类型,I表示INSERT,D表示DELETE,U表示UPDATE。OLD_NEW$$:用于表示这个值是新值还是旧值。N(EW)表示新值,O(LD)表示旧值,U表示UPDATE操作。CHANGE_VECTOR$$:表示修改矢量,用来表示被修改的是哪个或哪几个字段。如果WITH后面跟了ROWID,则物化视图日志中会包含:M_ROW$$:用来存储发生变化的记录的ROWID。如果WITH后面跟了PRIMARYKEY,则物化视图日志中会包含主键列
3、。如果WITH后面跟了OBJECTID,则物化视图日志中会包含:SYS_NC_OID$:用来记录每个变化对象的对象ID。如果WITH后面跟了SEQUENCE,则物化视图日子中会包含:SEQUENCE$$:给每个操作一个SEQUENCE号,从而保证刷新时按照顺序进行刷新。如果WITH后面跟了一个或多个COLUMN名称,则物化视图日志中会包含这些列。 下面通过例子进行详细说明:SQL>createtable t_rowid (idnumber,namevarchar2(30),numnumber);表已创建。
4、SQL>creatematerializedviewlogon t_rowid withrowid,sequence(name,num)includingnewvalues;实体化视图日志已创建。 SQL>createtable t_pk (idnumberprimarykey,namevarchar2(30),numnumber);表已创建。 SQL>creatematerializedviewlogon t_pk withprimarykey;实体化视图日志已创建。
5、 SQL>createtype t_object asobject(idnumber,namevarchar2(30),numnumber); /类型已创建 SQL>createtable t_oid of t_object;表已创建。 SQL>desct_oid;名称 是否为空?类型----------------------------------------------------------------ID
6、 NUMBERNAME VARCHAR2(30)NUM NUMBER SQL>creatematerializedviewlogon t_oid withobjectid;实体化视图日志已创建。 建立环境后来看看物化视图日志中包含的字段:
7、SQL>descmlog$_t_rowid;名称 是否为空?类型--------------------------------------------------------------NAME VARCHAR2(30)NUM NUMBERM_ROW$$
8、 VARCHAR2(255)SEQUENCE$$
此文档下载收益归作者所有