当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle10gR2中调整user commit的方法

Oracle
Oracle归档模式
Oracle存储过程创建和使用举例
通过JDBC连接oracle数据库的十大技巧
如何开发ORACLE存储过程
Java调用Oracle存储过程
Oracle性能优化
几种oracle数据库恢复
如何开发ORACLE存储过程
为Oracle数据库创建用户
用Quick Slice获取Oracle进程的线程状态
Oracle数据库高性能秘密之数据高速缓存
Oracle中的rownum和rowid
Oracle表段中的高水位线HWM
提高Oracle性能--如何走索引
oracle增加和修改数据文件
oracle移植到mysql注意事项
Oracle的几个概念:数据库名,全局数据库名,SID,实例,命名空间,schema
查询Oracle的BLOB类型
Oracle备份恢复四(RMAN备份)
如何彻底删除oracle

Oracle10gR2中调整user commit的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 45 ::
收藏到网摘: n/a


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