数据库学习笔记3-oralce 的并发控制与事务隔离级别

多版本是指,Oracle 能同时物化多个版本的数据,这也是 Oracle 提供数据读一致视图的机制(读一致视图即 read-consistent view,是指相对于某个时间点有一致的结果)。多版本有一个很好的副作用,即数据的读取器(reader)绝对不会被数据的写入器(writer)所阻塞。换句话说,写不会阻塞读。这是 Oracle 与其他数据库之间的一个根本区别。在 Oracle 中,如果一个查询只是读取信息,那么永远也不会被阻塞。它不会与其他会话发生死锁,而且不可能得到数据库中根本不存在的答案。


oralce 的四种隔离级别

隔离级别                                       脏读                        不可重复                  幻像读
READ UNCOMMITTED              允许                         允许                         允许
READ COMMITTED                                                     允许                         允许
REPEATABLE READ                                                                                    允许
SERIALIZABLE


oracle 所宣称的多版本控制已经不是其独有的特质了,至少sqlserver 2014已经实现了多版本:

【摘选自msdn】

SQL Server 还支持使用行版本控制的两个事务隔离级别。一个是已提交读隔离的新实现,另一个是新事务隔离级别(快照)。

  • 当 READ_COMMITTED_SNAPSHOT 数据库选项设置为 ON 时,已提交读隔离使用行版本控制提供语句级读取一致性。读取操作只需要 SCH-S 表级别的锁,不需要页锁或行锁。当 READ_COMMITTED_SNAPSHOT 数据库选项设置为 OFF(默认设置)时,已提交读隔离的行为方式与其在早期版本 SQL Server 中行为方式相同。两个实现都满足已提交读隔离的 ANSI 定义。

  • 快照隔离级别使用行版本控制来提供事务级别的读取一致性。读取操作不获取页锁或行锁,只获取 SCH-S 表锁。读取其他事务修改的行时,读取操作将检索启动事务时存在的行的版本。当 ALLOW_SNAPSHOT_ISOLATION 数据库选项设置为 ON 时,只能对数据库使用快照隔离。默认情况下,用户数据库的此选项设置为 OFF。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值