ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 学习物化视图

学习物化视图

原创 Linux操作系统 作者:fenglixiang 时间:2010-04-01 10:26:49 0 删除 编辑

一、物化视图语法
 CREATE MATERIALIZED VIEW 名字
    [refresh [fast|complete|force]        
    [on demand | commit]
    [start with date] [next date]
    [with {primary key|rowid}]]
  AS
select语句

二、各参数意义
1)refresh  刷新模式
     fast  :可以理解为增量模式,每次将新加入得数据插入视图中,这个模式下必须有MATERIALIZED view log。
     complete:完全刷新,可以理解为把原来的数据删除了再重新加进来。
     force:如果增量刷新可用Oracle将完成增量刷新,否则将完成完全刷新,如果不指定刷新方法(FAST, COMPLETE, or FORCE),Force选项是默认选项


2)on demand|commit
       demand:手动刷新
       commit:当原表提交时候就刷新

3) [start with date] [next date]
          按照时间刷新,start with date是起始刷新时间,next date是刷新时间间隔


4)    [with {primary key|rowid}]]
   基于主键还是基于rowid的。

三、测试物化视图
创建基表
create table a (a1) as select  rownum from dba_objects
查询基表中数据
select count(*) from a

 

测试on demand|commit
 
CREATE MATERIALIZED VIEW a_m1       
  REFRESH complete
 on demand
with rowid
  AS SELECT * FROM a                
 
  CREATE MATERIALIZED VIEW a_m2       
  REFRESH complete
 on commit
with rowid
  AS SELECT * FROM a        
 

  select count(*) from  a_m1 
   50318
  select count(*) from  a_m2
    50318
现在a_m1,a_m2两个中数量相同

a插入1条数据
insert into a values(50319)

再次查寻两个视图
  select count(*) from  a_m1 
   50318
  select count(*) from  a_m2
   50319

尝试手动刷新物化视图
EXEC DBMS_MVIEW.REFRESH('a_m1');

  select count(*) from  a_m1 
   50319
  select count(*) from  a_m2
   50319

刷新正常

 

下面测试fast|complete
由于fast要创建物化日志
 CREATE MATERIALIZED VIEW  log on a
(提示要创建主键)
CREATE MATERIALIZED VIEW a_m3       
  REFRESH complete
 on demand
with rowid
  AS SELECT * FROM a                
 
  CREATE MATERIALIZED VIEW a_m4       
  REFRESH fast
 on demand
  AS SELECT * FROM a        
 
插入一条数据

刷新视图
EXEC DBMS_MVIEW.REFRESH('a_m3');
用时7s+


刷新视图
EXEC DBMS_MVIEW.REFRESH('a_m4');
用时0.3s


另外基于时间点自动刷新就先不测试了。

 

查询视图dba_mview
dba_m开头的一堆~~~没有细致看


另外想查看一下log日志,结果发现差不了
SELECT * FROM MLOG$_T;
,不知道为啥

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

上一篇: lob字段
下一篇: 记录下ftp命令
请登录后发表评论 登录
全部评论

注册时间:2009-02-19

  • 博文量
    47
  • 访问量
    92827