Oracle如何保持一致性读?

php中文网
发布: 2016-06-07 16:48:06
原创
1408人浏览过

一致读的原理,就是查询的记录由查询的这一时间点决定,后面即便变化了,也要根据回滚保持的前镜像记录,取到那个点的数据。ORAC

一致读的原理,,就是查询的记录由查询的这一时间点决定,后面即便变化了,也要根据回滚保持的前镜像记录,取到那个点的数据。oracle是如何保证的呢?首先我们要了解两个情况:

1, SCN:System Change Number。这是一个只会增加不会减少的递增的数字,存在于ORACLE的最小单位块里,但某块改变时SCN就会递增。

2,数据库的回滚段记录槽,事物槽是用来分配回滚段空间的。如果你更新了某块,事务就被写进事务槽里。如果没有提交或者回滚,该块就存在活动事务,数据库读到次块可以识别到这种情况的存在。

因此Oracle在做一致读的时候,首先是看发起的SCN是否大于当前查询块的SCN,如果小于,毫无疑问从回滚段获取前镜像数据。如果SCN确实大于当前查询块的SCN,还要确保该块没有活动事务,否则还是要去前镜像查找。

OpenBMB
OpenBMB

OpenBMB 让大模型飞入千家万户

OpenBMB 198
查看详情 OpenBMB

所以ORACLE的回滚段既可以回滚数据,又可以保证一致性读。

本文永久更新链接地址:

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号