ORACEL 中 事务执行过程

 事务执行过程
1、服务器进程拾取该事务所持有的SQL语句到共享池中,查找是否有包含该SQL语句的共享SQL区。如果有,则检查该用户是否有访问所涉及的数据的权限,如果有,则使用共享SQL区来处理该SQL语句。如果没有找到共享SQL区,则分配一个新的SQL区来分析、处理该SQL语句。如果没有权限,则直接返回并提示权限不足。
2、锁定该SQL语句所涉及的操作对象。
3、服务器进程在SGA中操作数据(如果存在SGA中),或者先从数据文件中奖数据读取到SGA中然后操作数据。
4、在适当的时候,LGWR后台进程将已经缓冲的重做日志写入到联机重做日志文件中。DBWR后台进程将数据高速缓存中的被更改过的数据块写入到数据文件中。
5、为该事务自动产生一个递增的SCN。ORACLE使用SCN来确定数据库在某个时间点的一致性状态,用来进行并发控制,和进行数据库的恢复。可以将SCN理解为数据库的时钟。SCN会被记录在控制文件、数据文件的头部、数据块的头部和重做记录中。
6、LGWR后台进程将所有剩余的、已经缓冲的重做日志和当前的SCN写入到联机重做日志文件中。
7、释放该事务中SQL语句所占有的系统资源,并解除对所涉及的操作对象的锁定。
8、如果事务是成功的,则返回成功提示的代码,否则返回一个错误提示的代码。
9、在某个恰当的时间点,DBWR后台进程将仍然保留在数据高速缓存中被更改过的数据块(也就是脏数据块块)写入到数据文件中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值