Oracle数据库的语句级读一致性

数据库:Oracle

前提:假定100万行的记录,在最后一行有一个数据a=1。

实验:你在9:00的时候查找数据,9:05的时候查到最后一行;但是,在9:01的时候有人修改了最后一行数据并提交(commit),改为a=2,瞬间完成。

问题:在9:05的时候你查到的a的值是多少?

 

对于Oracle数据库来说,永远是请求那一刻的数据。所以答案是1。

 

原理:用户发起的查询带有时间戳SCN,查询的SCN会跟每行记录的数据块头的SCN对比,如果发现是在查询时间之后做了更改,就会去该记录对应的undo区域,那里清楚的记录着之前的数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值