物化视图也是种视图。 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
物化视图可以查询表,视图和其它的物化视图。
特点:
(1) 物化视图在某种意义上说就是一个 物理表 (而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到确认;
(2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;
(3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证;
创建语句:create materialized view mv_name as select * from table_name
因为物化视图由于是物理真实存在的,故可以创建索引。
语法:
create materialized view view_name
refresh [ fast|complete|force ]
[
on [commit|demand ] |
start with (start_time) next (next_time)
]
AS subquery;
创建物化视图需要的权限:
grant create materialized view to user_name;
物化视图示例:
-- 物化视图 commit
create materialized view mv_name refresh FORCE on commit as select * from EMPLOYEES;
-- 物化视图 demand
ALTER MATERIALIZED VIEW MV_TTT REFRESH FORCE ON DEMAND
START WITH TO_DATE('2021-11-07 00:36:00' ,'YYYY-MM-DD hh24:mi:ss')
NEXT TO_DATE('2021-11-08 00:36:00' ,'YYYY-MM-DD hh24:mi:ss') AS SELECT * FROM EMPLOYEES;