【发布时间】:2013-02-05 16:41:47
【问题描述】:
我正在使用物化视图,我无法将其设置为快速刷新,因为某些表来自没有物化视图日志的远程数据库。
当我创建物化视图时,大约需要 20 30 秒。但是,当我试图刷新它时。 花了超过2 3个小时。总记录数只有46万左右。
有人知道它会如何发生吗?
谢谢
代码如下
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) 但它仍然需要 141 分钟才能运行......与没有 atomic_refresh=>false
的 159 分钟相比【问题讨论】:
-
如果可能,您应该包括您的 MV 定义。
-
我已经上传了我的代码...谢谢
-
当您按需刷新时,您可能会考虑将
atomic_refresh => false作为参数传入,以强制截断表格然后填充。看到这个great answer。 -
这很有意义..我正在尝试这个命令......它现在仍在运行(6分钟)..原始命令花了 160 分钟......我将不断更新由此带来的性能提升命令...非常感谢..
-
这似乎不是我问题的根本原因......它仍在运行......现在超过 40 分钟
标签: oracle plsql oracle10g materialized-views