oracle一致性读

oracle是一个多用户系统,当一个会话开始读取数据还未结束读取之前,可能会有其他会话修改它将要读取的数据。如果会话读取到修改后的数据,就会造成数据的不一致。
一致性读就是为了保证数据的一致性。在Buffer cache中的数据块上都会有最后一次修改数据块时的scn。如果一个事务需要修改数据块中的数据,会先在回滚段中保存一份
修改前数据和scn的数据块,然后再更新buffer cache中的数据块的数据及其scn,并标示其为胀数据。当其他进程读取数据块时,会先比较数据块上的scn和自己的scn。
如果数据块上的scn小于等于进程本身的scn,则直接读取数据块上的数据;如果数据块上的scn大于进程本身的scn,则会从回滚段中找出修改前的数据块读取数据。

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

转载于:http://blog.itpub.net/30201626/viewspace-1813763/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值