物化视图就是对表的一种实体映射.物化视图和一般视图的不同在于它可以不依赖于基本而单独存在..例如如果有数据库A,B 在库A中有表TEST 要在数据库B中查询而数据库A 和B不是时刻连接的,则可以在B上创建一个TEST的物化视图进行数据映射.
测试创建表TEST用于实验
create table test (name varchar2(20),id varchar2(20));
insert into test select 'test','10000' from dual;
--创建日至
CREATE MATERIALIZED VIEW LOG ON TEST;
创建TEST的物化视图TEST_VIEW
创建方法有多种例如
方法一
create MATERIALIZED VIEW TEST_VIEW
refresh fast on commit --这中建立的物画视图只要基表有变化会马上应用到物化视图中
AS
SELECT * FROM TEST;
该方法创建的物化视图提供对基表的实时同步
方法二
create MATERIALIZED VIEW TEST_VIEW
refresh fast on commit --这中建立的物画视图只要基表有变化会马上应用到物化视图中
AS
SELECT * FROM TEST;
该方法创建的物化视图并不提供实时的更新,他可以通过JOB或者手动来更新
更新方法
exec dbms_mview.refresh('test_view');
方法三:
create MATERIALIZED VIEW TEST_VIEW as select * from test;
=
CREATE MATERIALIZED VIEW TEST_VIEW
REFRESH FORCE ON DEMAND --这种方式创建的物化视图必须通过手工或者JOB来进行刷新 exec dbms_mview.refresh('test_view');
AS
当创建的时候不指定刷新方法时默认是这样的该方法也不提供实时的更新.要通过手动或者JOB来进行刷新
物化视图的刷新分COMPLE(完全),FAST(快速),FORCE(强制),NEVER(从不)几种