我的编程空间,编程开发者的网络收藏夹
学习永远不晚

建物化视图,完成query rewrite,refresh功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

建物化视图,完成query rewrite,refresh功能

1、创建物化视图

TEST8@ odb>create materialized view  v_wuhua as select * from gaoshuiwei;

create materialized view v_001 asselect * from gaoshuiwei

                                               *

ERROR at line 1:

ORA-01031: insufficient privileges


sys@ odb>grant create materialized view to test8;


TEST8@ odb>create materializedview v_wuhua as select * from gaoshuiwei;

 Materialized view created.

 

TEST8@ odb>create view v_shituas select * from gaoshuiwei;

create view v_shitu as select *from gaoshuiwei

            *

ERROR at line 1:

ORA-01031: insufficient privileges



sys@ odb>grant create view to test8;


TEST8@ odb>create view v_shituas select * from gaoshuiwei;

 View created.


清空v_wuhua数据提示数据操作不合法,说明物化视图只能读不能删除数据,

1、比较物化视图和视图的区别

 

TEST8@odb>delete from gaoshuiwei;    //清空基表

68310rows deleted.

查询物化视图和普通视图的区别

TEST8@odb>select count(*) from v_wuhua;

  COUNT(*)

----------

     68310

 

TEST8@odb>select count(*) from v_shitu;

  COUNT(*)

----------

         0

 

可以看到随着基表的被清空,物化视图是没有变化的,而普通视图随之清空;重新插入数据效果还是一样物化视图不变,普通视图随着基表的变化而变化

 

 

TEST8@odb>insert into gaoshuiwei select * from all_objects;

68314rows created.

TEST8@odb>commit;

Commitcomplete.

TEST8@odb>select count(*) from gaoshuiwei;

  COUNT(*)

----------

     68314

TEST8@odb>select count(*) from v_wuhua;

 

  COUNT(*)

----------

     68310

 

TEST8@odb>select count(*) from v_shitu;

 

  COUNT(*)

----------

     68314

TEST8@odb>exec dbms_mview.refresh('V_WUHUA');  //刷新物化视图数据这时和基表数据一致了。

物化视图不仅可以全量的刷新数据还可以增量的刷新数据;

TEST8@odb>create materialized view v_wuhua1 as select * from gaoshuiwei whererownum<1;

 

Materializedview created.

TEST8@odb>select count(*) from v_wuhua1;

 

  COUNT(*)

----------

         0

selectdbms_metadata.get_ddl('MATERIALIZED_VIEW','V_WUHUA1','TEST8') FROM DUAL;


3、查询重写

 

TEST8@odb>create materialized view v_wuhua3 enable query rewrite as select * fromgaoshuiwei;

 Materializedview created.


看一下基表的查询执行计划,执行计划上看表面查询的是基表实际上查询的是物化视图;

4、删除物化视图

DROPMATERIALIZED VIEW V_TESTMV;





免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

建物化视图,完成query rewrite,refresh功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录