好吧,這是我提出的解決方案,你的里程可能會有所不同,任何反饋意見後,事實。總體戰略是要做到以下幾點:
1)利用甲骨文計劃利用鏈的並行執行的(工作)
2)利用視圖(正規的那種)從應用程序的界面到數據庫
3)依靠待建以下述方式
create materialized view foo
parallel
nologging
never refresh
as
select statement
根據需要使用物化視圖以下:
create index baz on foo(bar) nologging
的advantag這是因爲我們可以在刪除+重新創建視圖之前在後臺創建物化視圖,如步驟2中所述。現在,優勢是創建動態命名的物化視圖,同時保持視圖具有相同的名稱。關鍵是不要吹走原來的物化視圖,直到新視圖完成。這也允許快速下降,因爲有最小的重做要關心。這可以在5分鐘內在大約10億條記錄上創建物化視圖,這符合我們每三十分鐘刷新一次的要求。此外,這可以在單個數據庫節點上處理,因此即使受限制的硬件也是如此。
下面是一個PL/SQL函數,將創建爲您:作爲題外話是dba.se是在得到回答您的問題方面基本上是無用的
CREATE OR REPLACE procedure foo_bar as
foo_view varchar2(500) := 'foo_'|| to_char(sysdate,'dd_MON_yyyy_hh_mi_ss');
BEGIN
execute immediate
'Create materialized view '|| foo_view || '
parallel
nologging
never refresh
as
select * from cats';
END foo_bar;
帶關閉的問題。 – Woot4Moo
儘管如此,這不是一個編程問題。 – APC
另外,什麼激發你的好奇心?數據倉庫中是否存在需要解決的實際問題? – APC