使用原则:
物化视图使用时基本等同于数据库表,主键、索引均可创建,如使用增量刷新,可能导致基表进行DML时效率降低。在子查询关联逻辑复杂,查询非常慢时,可将子查询单独拿出来,建一个物化视图,再由原查询关联此物化视图提升效率,不建议使用物化视图完全替代普通视图。
创建
create materialized view [view_name]
refresh [fast|complete|force] [
on [commit|demand]
| start with (start_time) next (next_time) ] as
{
创建物化视图用的查询语句}
刷新模式:
demand表示视图在被需要的时候刷新
commit表示一旦有了事务提交即更新
刷新方法:
fast采用增量刷新,只刷新自上次刷新以后进行的修改
complete对整个物化视图进行完全的刷新
force在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式
never从不刷新
(可选)刷新时间:
start_time指定起始时间
next_time下次开始时间,起始到下次的间隔时间即改表的循环时间
例子:
create materialized view test_mview
refresh force on demand
start with sysdate
next TO_DATE(CONCAT