oracle 10g数据库的异步提交
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
轉載于:https://blog.51cto.com/19880614/1262000
總結
以上是生活随笔為你收集整理的oracle 10g数据库的异步提交的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看Linux硬件信息命令的使用
- 下一篇: 移动Web开发图片自适应两种常见情况解决