oracle commit提交到底作了什么

oracle commit所作的工作如下:
1,产生一个scn
  与此事务相关联的undo tablespace的itl标志为提交即flag为-c--;
  并且为此事务分配一个唯一的scn并记录到undo tablespace的事务表中
2,lgwr把log buffer余下的重作日志条目写入到log file中;
  而且要把上述提交事务产生的scn一并写入到log file中
3,oracle把表及行上加的锁释放掉
  其它等待它的事务就可以继续工作了
4,删除保存点
5,如果提交事务所修改的数据块还在sga中;
 此时没有其它会话修改这些数据块
  数据块就清除这些数据块上的锁标志
  (最理想的情況是:commit动作一产生就清除数据块上的锁标志,这样就不用之后的select清除数据块上的锁标志了)这个概念相当重要
 
  另:块清除会产生redo,因为可能select会产生redo,就可能会导致下次检查点发生写入这个数据块到datafile中
 
6,oracle标志commit完成

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-756756/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-756756/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值