Commit 时系统到底做了哪些工作?

修改缓存中的块的内容? 不,它只是修改了块上的事务信息(释放锁),修改块的内容在执行语句时已经做完了,提交时只是需要做上述清理工作

为事务生成SCN 这个是必须的,但是很快几乎不需要时间

等待LGWR将剩下的内容写到磁盘上,这个一般来说是最耗时的,但是也不会太长,因为最多就是1M的内容(因为大事务的话LGWR早就开始存盘了,不用等到commit)但是它一定是同步的!

 

好了,其实就是这么多的工作

所以说有时候可以将大量的提交改为小提交并不一定能提高效率,因为commit一次大事务所需的时间和commit几个小事务需要的时间差不多,但是多次提交会增加网络通讯的负担,有时反而得不偿失!!

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭