oracle 10g数据库的异步提交
2013-08-01 11:08
204 查看
Oracle10gR2新特性:Asynchronous COMMIT
对于Oracle的commit机制,相信大家都已经非常的熟悉了。Oracle对于commit采取了同步写事务log的方式,也就是说,一旦发出commit命令,那么必须等待事务相关的所有redo都已经从 log buffer写出到redo logfile以后,才会控制权返回发出commit的进程。
同步commit有两个特点:
1.Immediate,发出commit命令后,立即将redo写出
2.Wait,在redo写出过程中,必须等待
但是,Oracle10gR2开始,一种新的commit机制被引入,这就是异步commit机制。也就是说,不必等到事务相关redo写出就可以返回了,异步commit也有两种特点:
1.Nowait,发出commit命令后,不关redo是否写出,立即返回控制权
2.Batch,redo的写出可以想buffer一样执行批量写出,以提高性能
当然,同步commit也可以batch,异步commit也可以将redo立即写出,所以上述四个特性可以自由组合。
这样,commit引入了新的语法:
COMMIT [WRITE [IMMEDIATE | BATCH] [WAIT | NOWAIT] ]
默认情况下,commit的机制和以前一样,也就是相当于
COMMIT WRITE IMMEDIATE WAIT;
当然,这个默认机制可以通过初始化参数修改,所以Oracle10gR2又引入了一个新的参数COMMIT_WRITE,可能的取值包括
COMMIT_WRITE='{ IMMEDIATE | BATCH } , { WAIT | NOWAIT }'
异步commit由于不能确保事务的redo已经写出到redo logfile当中,一旦实例崩溃,可能导致已经commit的事务无法恢复,使用该特性的时候需要慎重考虑。
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html
对于Oracle的commit机制,相信大家都已经非常的熟悉了。Oracle对于commit采取了同步写事务log的方式,也就是说,一旦发出commit命令,那么必须等待事务相关的所有redo都已经从 log buffer写出到redo logfile以后,才会控制权返回发出commit的进程。
同步commit有两个特点:
1.Immediate,发出commit命令后,立即将redo写出
2.Wait,在redo写出过程中,必须等待
但是,Oracle10gR2开始,一种新的commit机制被引入,这就是异步commit机制。也就是说,不必等到事务相关redo写出就可以返回了,异步commit也有两种特点:
1.Nowait,发出commit命令后,不关redo是否写出,立即返回控制权
2.Batch,redo的写出可以想buffer一样执行批量写出,以提高性能
当然,同步commit也可以batch,异步commit也可以将redo立即写出,所以上述四个特性可以自由组合。
这样,commit引入了新的语法:
COMMIT [WRITE [IMMEDIATE | BATCH] [WAIT | NOWAIT] ]
默认情况下,commit的机制和以前一样,也就是相当于
COMMIT WRITE IMMEDIATE WAIT;
当然,这个默认机制可以通过初始化参数修改,所以Oracle10gR2又引入了一个新的参数COMMIT_WRITE,可能的取值包括
COMMIT_WRITE='{ IMMEDIATE | BATCH } , { WAIT | NOWAIT }'
异步commit由于不能确保事务的redo已经写出到redo logfile当中,一旦实例崩溃,可能导致已经commit的事务无法恢复,使用该特性的时候需要慎重考虑。
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html
相关文章推荐
- oracle 10g手动创建数据库
- Oracle 11g导出来的dmp导入到 10g的数据库(IMP-00010:不是有效的导出文件,头部验证失败)
- oracle 10g 数据库RMAN创建 Data Guard方法
- Oracle 10g数据库基础之基本查询语句-下-连接&子查询
- Oracle 10g数据库基础之基本DDL和DML语句
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第8章:事务
- oracle 10g EM登录后提示“数据库状态当前不可用可能是因为数据库的状态为装载或不装载”
- Oracle 10g 关闭数据库操作不当,出现ORA-10997/09968的错误
- 利用 Oracle 数据库 10g、Oracle Discoverer 和 Oracle Portal 构建 BI 信息板
- Oracle 10g手工创建数据库个人经验
- 从Sql server 2000 到 Oracle 10g数据库迁移数据类型转化
- Oracle 10g 数据库导入工具impdp使用Windows的网络驱动器 ORA-31640
- 有oracle 10g,但没有安装arcgis,又想使用空间数据库的解决方案
- Oracle 9i/10g/11g 数据库 升级路线图(upgrade roadmap)
- Windows 7操作系统安装Oracle 10g数据库的方法
- oracle 10G 对数据库分配角色--- ORA-01017
- Oracle 10G手工创建数据库(Helloblock写作)
- 数据库迁移 oracle 10g -> oracle 11g (windows下)
- Oracle 10G手工创建数据库
- Oracle 10G利用命令行手工创建数据库