物化视图是一个查询结果的实体表,和视图有本质区别,视图每次查询都是从基本表检索出结果,但物化视图是定时生成的结果,是有实际物理表结构的表。而视图是虚拟表。
典型使用场景:
创建物化视图:
create materialized view MV_ DOP_TEST REFRESH FORCE ON DEMAND START WITH TO_DATE('19-11-2019 03:00:00', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE 60/(24*60) AS select dsso.dop_id,soo.work_center_no,soo.operation_description from SHOP_ORDER_OPERATION SOO, DOP_SUPPLY_SHOP_ORD DSSO where soo.order_no=dsso.order_no and soo.release_no=dsso.release_no and soo.sequence_no=dsso.sequence_no; create materialized view LOG ON MV_ DOP_TEST_log;
删除物化视图:
drop materialized view MV_ DOP_TEST ; drop materialized view log on MV_ DOP_TEST_log;物化视图定时规则
start with sysdate next to_date( concat( to_char( sysdate 1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh24:mi:ss');
该规则表示每天22点刷新同步物化视图。
物化视图和索引使用物化视图查询关于索引,很容易产生误区,物化视图也有索引,不过不是直接建立在物化视图上,是通过基本表创建索引,物化视图才会使用索引,否则这个物化视图查询有性能瓶颈。
看一下plsql里用了索引物化视图的ddl:
所以,如果你的物化视图查询慢,可以检查是否有效使用了索引。给物化视图同名的表添加索引即可:
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved