您的位置:首页 > 数据库 > Oracle

oracle commit提交到底作了什么

2015-02-27 15:20 162 查看
oracle commit提交到底作了什么 分类: Linux

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完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle Linux file