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 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完成
相关文章推荐
- commit提交,数据库做了什么-oracle
- 为什么session.commit引起事务的提交,session.insert和delete底层到底是什么
- 【转】dcba的文章:Oracle的SET UNUSED COLUMN操作到底做了什么?
- oracle 的workload到底是什么意思? 权威解释
- oracle更新数据,提交(commit)后,如何"回滚"
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- MySQL set autocommit = 0或1分别什么啊,哪个是自动提交啊
- ORACLE EXECUTE IMMEDIATE 'DML' 不能自动提交COMMIT 'DDL'触发COMMIT
- Oracle的监听(listener)到底是什么
- oracle commit的时候发生了什么
- Hadoop Job的提交,到底提交了什么?
- Asp.net Oracle transaction事务出现奇怪的aotucommit自动提交现象及解决办法
- 【DB.Oracle】事务transaction的隐式提交commit
- oracle 中--怎么查看当前表空间在作什么操作?--查锁,死锁,当前执行时间长的Sql语句,没提交的事务,对象为哪些进程所用
- oracle的rowid到底是什么
- oracle中的隐式提交(auto commit)
- 问题:oracle long 与 clob;结果:long类型比clob到底差在什么地方?
- oracle什么时候应该commit(提交事务)
- oracle的commit过程中做了什么
- 网页提交方式post,到底post了些什么?