oracle大批次資料處理

mrhaozi發表於2009-12-10


alter session enable parallel dml ;
alter session disable parallel dml;

可以看到insert /*+ append */ into方式redo產生很少.


alter table redo_test nologging;
alter table redo_test logging;


Oracle10g中,我們可以設定commit的行為來做到在commit之後,控制權立刻返回給使用者,而Oracle會在恰當的時候來喚醒LGWR,批次更新online redo log檔案。


我們可以作系統級的更改:


ALTER SYSTEM SET COMMIT_WRITE = BATCH, NOWAIT

同樣我們也可以在commit時單獨使用,這樣作雖然意味著即使commit了事務,在資料庫恢復時也是不一定找得回來的。但從安全換效率的角度考慮,此做法也不失為權益之計。


COMMIT WRITE BATCH NOWAIT


/*+ append parallel(d,12) */ insert 表D開了12個程式

/*+ parallel(a,12) parallel(b,12) parallel(c,12) */ select 表a,b,c開了12個程式

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16396910/viewspace-1029553/,如需轉載,請註明出處,否則將追究法律責任。

相關文章