我正在使用物化視圖,我無法將其設置爲快速刷新,因爲某些表來自沒有物化視圖日誌的遠程數據庫。物化視圖的創建速度很快,但刷新需要幾小時
當我創建物化視圖時,花費了20 30秒。但是當我試圖刷新它。 花了2個多小時。總記錄數僅爲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 [email protected] Fcr
INNER JOIN [email protected] Cr
ON Fcr.w_Sol_Chng_Id = Cr.w_Sol_Chng_Id
INNER JOIN [email protected] Bsr
ON Fcr.w_Sol_Chng_Id = Bsr.w_Sol_Chng_Id
INNER JOIN [email protected] 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 =>假) 但也花費了141分鐘運行... vs 159分鐘沒有atomic_refresh =>假
如果可能的話,你應該包括你的MV定義。 – Wolf 2013-02-20 16:21:06
我已經上傳了我的代碼......感謝 – 2013-02-20 16:25:18
當您按需刷新時,您可能會考慮傳遞'atomic_refresh => false'作爲參數來強制表格被截斷並填充。看到這個[很好的答案](http://stackoverflow.com/questions/6349274/oracle-what-happens-when-refreshing-a-refresh-force-on-demand-view-with-dbms)。 – Wolf 2013-02-20 16:46:34