oracle教程:创建手动刷新的物化视图

创建物化视图的语法

1、物化视图概念:将视图中查询出来的数据存储到一张表中。
2、优点:查询速度比视图要快。
3、缺点:占用资源,并且要时时更新数据。
4、创建物化视图

CREATE METERIALIZED VIEW view_name
[BUILD IMMEDIATE | BUILD DEFERRED ]
REFRESH [FAST|COMPLETE|FORCE]
[
ON [COMMIT |DEMAND ] | START WITH (start_time) NEXT
(next_time)
]
AS
Subquery
  • METERIALIZED:实体化。
  • BUILD IMMEDIATE: 创建物化视图的时候就生成数据。
  • BUILD DEFERRED:创建物化视图的时候不生成数据。 默认为 BUILD IMMEDIATE
  • FAST:快速刷新,增量刷新。
  • COMPLETE:基表更新,删除物化视图数据,重新生成数据。
  • FORCE:自动选择,能增量刷新就增量,不能增量就完全刷新。
    默认为FORCE
  • ON COMMIT:基表变化,物化视图就刷新。
  • ON DEMAND:手动刷新 默认:ON DEMAND

创建手动刷新的物化视图

创建物化视图默认为手动刷新ON DEMAND,基表如果数据发生变化,物化视图中的表不会发生变化,需要手动进行刷新。

1--需求:查询地址 ID,地址名称和所属区域名称
create materialized view view_address1 as
select ad.id,ad.name,ar.name arname
from t_address ad,t_area ar 
where ad.areaid=ar.id
--删除物化视图
drop materialized view view_address1;

2--物化视图一般以mv开头
create materialized view mv_address1 as
select ad.id,ad.name,ar.name arname
from t_address ad,t_area ar 
where ad.areaid=ar.id
--查询物化视图
select * from mv_address1;

3--向基表插入数据
insert into t_address values(8,'西三旗',2,2);
commit;
--查询t_address
select * from t_address;

4--执行刷新语句
begin
  DBMS_MVIEW.refresh('MV_ADDRESS1','C');
end;

5--向基表插入数据
insert into t_address values(9,'西四旗',2,2);
commit;    

6--命令窗口更新刷新数据(了解)
EXEC DBMS_MVIEW.refresh('MV_ADDRESS1','C');

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/132793833