物化视图

 

一  物化视图的概念

我们都知道视图(VIEW)是一种虚表,其目的仅仅是为了方便我们进行综合数据的查询而已,他并不能够帮助我们提高性能。

那么物化视图,这个概念的引出,我们在相应的场景下可以使用物化视图提高查询效率。

物化视图是一种特殊的物理表,“物化"(Materialized)视图是相对普通视图而言的。物化视图的特点:

物化视图在某种意义上说就是一一个物理表(而且不仅仅是一个物理表),这通过其可以被user_ _tables查询出来,而得到佐证:

物化视图也是一种段(segment),所以其有自己的物理存储属性;

物化视图会占用数据库磁盘空间,这点从user_ segment的查询结果,可以得到佐证;

二  物化视图的使用

物化视图的类型: Oracle提供 了两种方式,手工刷新和自动刷新,默认为手工刷新。即: ONDEMAND、ON COMMIT

二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图"需要"被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的-致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交则立刻刷新,立刻更新物化视图,使得数据和基表一致。

创建语句:

create materialized view mv_ name [选项N] as select * from [table_name];

  [选项1] BUILD [IMMEDIATE, DEFERRED] 是否在创建视图时生成数据,默认生成、DEFERRED为不生成数据,需要的时候生成。

  [选项2] REFRESH [FAST, COMPLETE, FORCE, NEVER) fast是增量刷新,或者说叫快速刷新: complete为全表 刷新; force 为如果增量刷新可以使用则使用增量刷新,否则全表刷新; never则是不进行刷新(不使用)。

  [选项3] ON [DEMAND, COMMIT 即手工刷新和提交时刷新。

  [选项4] START WITH通知数据库完成从主表到本地表第一次复 制的时间。

  [选项5] NEXT说明了刷新的时间间隔,下一次刷新的时间=上一次执行完成的时间+时间间隔。

 

posted @ 2019-02-23 23:03  programmLover  阅读(431)  评论(0)    收藏  举报