物化视图(实体化视图)是包括一个查询结果的数据库对象,它是远程
数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
所以物化视图和视图的最大区别是,物化视图在本地保存数据,而视图只是一些SQL语句而已。视图的好处是简化使用过程,物化视图的好处提高性能,当然也可以简化使用过程。提高查询速度的代价就是放弃一定的数据实时性。
物化视图可以查询表,视图和其它的物化视图。
创建物化视图,应先在对于的基础表上创建存储的日志空间:
create materialized view log on tablex
tablespace mytestspace -- 日志空间
with rowid;
然后再创建物化视图:
create materialized vew myfirstmv
on prebuild tabley -- 将物化视图建立在一个已经存在的表上,也可不加这句
tablespace mytestspace
build deffered -- buld clause子句,deffered表示创建时不生成数据,默认为build immediate
refresh fast -- refresh 子句。fast表示只刷新上次刷新之后所作的修改。相对为complete。默认为force
on commit -- 对基表的DML操作提交的同时进行刷新。默认为on demand
start with to_date('2008-08-08 20:00:00', 'yyyy-mm-dd hh24:mi:ss') --第一次刷新时间
next TRUNC(SYSDATE+1)+18/24 --刷新时间间隔。每两天刷新一次,时间为下午6点
as
select x1, x2, x3 from tablex
删除时,删除物化视图和物化视图日志无顺序要求,不过先删除日志,会使删除物化视图的速度加快很多。
如果物化视图日志存在的话,物化视图在删除的时候,需要将物化视图日志中所有当前物化视图需要刷新的记录删除掉。这意味着一个DDL的语句中包含着DML的部分。
以上都没经过实际操作,以后有时间再说
http://xznsoft.javaeye.com/blog/124000
posted on 2008-08-09 15:53
EvanLiu 阅读(1884)
评论(0) 编辑 收藏 所属分类:
DB