物化视图几个知识点

物化视图几个知识点

ID:38752814

大小:44.50 KB

页数:12页

时间:2019-06-18

物化视图几个知识点_第1页
物化视图几个知识点_第2页
物化视图几个知识点_第3页
物化视图几个知识点_第4页
物化视图几个知识点_第5页
资源描述:

《物化视图几个知识点》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、物化视图几个知识点 源表:物化视图数据源对应的表基表:物化视图对应的表本文主要内容包括:1、如何使源表的数据变化不影响物化视图的快速刷新2、建好物化视图后,当基表或者源表的结构发生变化对物化视图刷新的影响。测试数据准备:suk@ORA9I>CREATETABLET_MV(C1NUMBER,C2NUMBER,PRIMARYKEY(C1));Tablecreated.suk@ORA9I>CREATEMATERIALIZEDVIEWLOGONT_MV;Materializedviewlogcreated.--准备4种方法测试的MVsuk@ORA9I>CREATEMATERI

2、ALIZEDVIEWMV_1REFRESHFASTASSELECTC1,C2FROMT_MV;Materializedviewcreated.suk@ORA9I>CREATEMATERIALIZEDVIEWMV_2REFRESHFASTASSELECT*FROMT_MV;Materializedviewcreated.suk@ORA9I>CREATEMATERIALIZEDVIEWMV_3REFRESHFASTASSELECT*FROMT_MVT;Materializedviewcreated.suk@ORA9I>CREATEMATERIALIZEDVIEWMV_4R

3、EFRESHFASTASSELECTT.*FROMT_MVT;Materializedviewcreated. 一、如何修改源表数据,而不会产生MLOG$_XXX物化视图在快速刷新时是根据MLOG$_XXX的记录来决定那些数据需要刷新的,所以,如果想要源表修改的数据不被刷新的话,就需要把MLOG$_XXX对应的记录去掉。 1、用函数包 suk@ORA9I>INSERTINTOT_MVVALUES(1,1);1rowcreated.suk@ORA9I>SELECT*FROMMLOG$_T_MV;C1       SNAPTIME$DOCHANGE_VECTO------

4、---------------------------1        01-JAN-00INFEsuk@ORA9I>ROLLBACK;Rollbackcomplete.suk@ORA9I>EXECDBMS_MVIEW.BEGIN_TABLE_REORGANIZATION('SUK','T_MV');--用这个过程可以使得对源表的DML操作不产生MLOG,影响范围是从BEGIN_TABLE_REORGANIZATION到END_TABLE_REORGANIZATION其间PL/SQLproceduresuccessfullycompleted.suk@ORA9I>CO

5、MMIT;--一定要执行commit,否则还会产生MLOG$Commitcomplete.suk@ORA9I>INSERTINTOT_MVVALUES(1,1);1rowcreated.suk@ORA9I>SELECTCOUNT(1)FROMMLOG$_T_MV;COUNT(1)----------0suk@ORA9I>ROLLBACK;Rollbackcomplete.suk@ORA9I>EXECDBMS_MVIEW.END_TABLE_REORGANIZATION('SUK','T_MV');PL/SQLproceduresuccessfullycompleted

6、.--注意:对于表的DML非常频繁,如果只是想让某小部分数据不产生日志,则这种方法不适合。可以用第二种方法。2、删除MLOG$记录第二种方法很直接,就是直接删除不想被刷新的数据对应的修改日志。这种方法的难点是如何准确找出那些是你需要删除的日志。方法很麻烦,这里不详细说了。 二、如何修改物化视图数据时,不产生USLOG_XXX这种情况只能用手工删除USLOG$_XXX的方法了。 三、源表结构发生变化时1、源表添加字段--添加字段suk@ORA9I>ALTERTABLET_MVADD(COL3NUMBER);Tablealtered.--对mv_1进行两种方法刷新suk@

7、ORA9I>EXECDBMS_MVIEW.REFRESH('MV_1','COMPELETE');PL/SQLproceduresuccessfullycompleted.suk@ORA9I>EXECDBMS_MVIEW.REFRESH('MV_1','FAST');PL/SQLproceduresuccessfullycompleted.--对mv_2进行两种方法刷新suk@ORA9I>EXECDBMS_MVIEW.REFRESH('MV_2','COMPELETE');PL/SQLproceduresuccessfullycompleted.su

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。