码迷,mamicode.com
首页 > 数据库 > 详细

Oracle一致读原理

时间:2018-03-01 11:48:49      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:ora   改变   当前时间   body   inf   提交   更新   过程   数据   

首先了解2个概念:

1. SCN(System Change Number),一个只会增加不会减少的数字, 存在于Oracle最小单位块中,当某块改变时SCN就会递增。

2. 数据库回滚段记录事物槽(事物槽是用来分配回滚空间的),如果更新了某块,事物就被写进事物槽里,如果未提交或回滚,

该块就存在活动事物,数据库读到此处就会识别到这种情况的存在。

当我们发起查询请求时,数据库会获取当前时间的SCN,用来在查询过程中和每个数据块头部ITL槽中的SCN号进行比较,如果

小于查询时间的SCN,则表示在这段时间内未被更新过,如果大于,则表示在查询时间点之后被改过了,此时需要根据ITL槽中

记录的undo块的地址找到undo块,将undo块中被修改前的数据读出。

技术分享图片

摘自:《收货不止Oracle》

Oracle一致读原理

标签:ora   改变   当前时间   body   inf   提交   更新   过程   数据   

原文地址:https://www.cnblogs.com/jingweiyoung/p/8487097.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!