2017-04-10 121 views
1

我需要刷新我的物化每1分鐘,所以我用下面的代碼訪問量:每隔1分鐘快速刷新物化視圖是否存在問題?

CREATE MATERIALIZED VIEW Any_Name 
BUILD IMMEDIATE 
REFRESH fast start with (sysdate) next (sysdate+1/1440) with rowid 
ON DEMAND 
AS 
SELECT * FROM [email protected]_Link; 

,我將這段代碼適用於7個表很少更新,但是當表更新它是物化視圖快速刷新是很重要的。

快速刷新物化視圖每1分鐘有問題嗎?

+2

它們不適合快速刷新提交嗎? –

+0

不,他們很合適。 但我問,即使它很快我恐怕1分鐘的時間間隔花費在數據庫的性能問題? – Hazemdido

+1

如果[提交時刷新](http://docs.oracle.com/database/121/SQLRF/statements_6002.htm#SQLRF54159),則不需要每分鐘刷新一次。你不會有這樣的開銷,你不會在更新的表格和反映更改的數據的MV之間出現間隙,這似乎是你首先要避免的。 –

回答

0
  1. 我認爲這是與優化沒有任何信息有關的另一個問題。性能取決於你有多少RPM到你的數據庫(到這個視圖)?它刷新多久/表是多大? 它鏈接表,所以他們可能在其他服務器上。也許你需要刷新一小塊數據(改變數據庫的架構並刷新小的物化視圖)以防萬一?
  2. 還有我不知道,但在刷新墊視圖情況下,你可以有更多的重做日誌,而不是簡單的截斷插入/ * +追加*/,這可能是表現一個大問題(以經常是硬盤問題的瓶頸)
+0

我認爲你所要求的在快速刷新中不會有所不同? – Hazemdido

+0

這是不同的。快速刷新可以調用「增量刷新」(©Kyte),因此它會生成重做和撤消日誌,而不是我建議的方式。但是因爲我已經寫了這些信息不夠。 – Leo