zt:Oracle10gR2中調整user commit的實用方法

lfree發表於2008-05-04
在以前的的Oracle版本中,假如使用者commit,後臺的LGWR程式必將會把記憶體中的redo資料寫入到online redo log的檔案裡,之後又會將控制權返回給使用者,需要注意的是,其實這段很可能並不是磁碟操作,而是寫入到磁碟緩衝中的。假如應用中有過於頻繁的使用者commit,那麼很可能會產生明顯的log file sync的等待事件。
而Oracle10g中的新功能-Asynchronous Commit可能是解決這個問題的一個最新方法。
Oracle10g中,我們可以設定commit的行為來做到在commit之後,控制權立刻返回給使用者,而Oracle會在恰當的時候來喚醒LGWR,批次更新online redo log檔案。
我們可以作系統級的更改:
ALTER SYSTEM SET COMMIT_WRITE = BATCH, NOWAIT
同樣我們也可以在commit時單獨使用,這樣作雖然意味著即使commit了事務,在資料庫恢復時也是不一定找得回來的。但從安全換效率的角度考慮,此做法也不失為權益之計。
COMMIT WRITE BATCH NOWAIT[@more@]

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

相關文章