oracle – 物化视图建设速率快但革新必要数小时
我正在行使物化视图,我无法将其配置为快速革新,由于某些表来自长途数据库,它没有物化视图日记. 当我建设物化视图时,耗费了约莫20 30秒.可是当我试图革新它时. 有没有人知道它会怎样产生? 感谢 代码如下所示 create materialized view MY_MV1 refresh force on demand start with to_date('20-02-2013 22:00:00','dd-mm-yyyy hh24:mi:ss') next trunc(sysdate)+1+22/24 as ( SELECT Nvl(Cr.Sol_Chng_Num,' ') AS Change_Request_Nbr,Nvl(Sr.Sr_Num,' ') AS Service_Request_Nbr,Nvl(Sr.w_Org_Id,0) AS Org_Id,Fcr.rowid,Cr.rowid,Bsr.rowid,Sr.rowid,SYSDATE FROM Dwadmin.f_S_Change@DateWarehouse.World Fcr INNER JOIN Dwadmin.d_S_Change@DateWarehouse.World Cr ON Fcr.w_Sol_Chng_Id = Cr.w_Sol_Chng_Id INNER JOIN Dwadmin.b_S_Change_Obl@DateWarehouse.World Bsr ON Fcr.w_Sol_Chng_Id = Bsr.w_Sol_Chng_Id INNER JOIN Dwadmin.d_S_Rec@DateWarehouse.World Sr ON Sr.w_Srv_Rec_Id = Bsr.w_Srv_Rec_Id WHERE Sr.Sr_Num <> 'NS' ); 我试过行使dbms_mview.refresh(‘MY_MATVIEW’,’C’,atomic_refresh => false) 办理要领我小我私人不会行使内置于mat视图CREATE语句中的调治措施(以…开头的子句).首要缘故起因(对我而言)是你不能以这种方法声明革新非ATOMIC(至少我在CREATE时没有找到这个的语法).按照您的革新要求和巨细,这可以节减大量时刻. 我会行使dbms_mview.refresh(‘MY_MATVIEW’,atomic_refresh => false).这个会: >截断MY_MATVIEW快照表 假如在create语句中行使next子句,它将配置一个原子革新,这意味着它将: >从MY_MATVIEW中删除* 这将更慢(偶然慢得多),但其他人如故可以在革新进程中从MY_MATVIEW查询.以是,取决于你的环境和需求. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |