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

Oracle
oracle sys_connect_by_path 函数 结果集连接
oracle join on 数据过滤问题
Oracle 当前用户下所有表的记录总数
oracle 树查询 语句
oracle 触发器 实现出入库
Oracle 函数大全
oracle 删除重复数据
ORACLE 最大连接数的问题
oracle 层次化查询(行政区划三级级联)
oracle 查询表名以及表的列名
Oracle 数据显示 横表转纵表
oracle 服务启动,关闭脚本(windows系统下)
ORCLE 表中列的修改
oracle 数据库连接分析
Oracle 实现类似SQL Server中自增字段的一个办法
Oracle 常用的SQL语句
Oracle 数组的学习 小知识也要积累,养成好的学习态度
Oracle 日期的一些简单使用
Oracle 数据库连接查询SQL语句
Oracle DBA常用语句

Oracle10gR2中调整user commit的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 44 ::
收藏到网摘: 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