程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle10gR2中調整user commit的方法

Oracle10gR2中調整user commit的方法

編輯:Oracle數據庫基礎

在以前的的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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved