Oracle10gR2中调整user commit的实用方法

上一篇 / 下一篇  2007-12-22 10:02:00 / 个人分类:学习笔记

 

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

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 5338
  • 日志数: 174
  • 建立时间: 2006-11-20
  • 更新时间: 2008-04-07

RSS订阅

Open Toolbar