设为首页 加入收藏

TOP

重读ACritiqueofANSISQLIsolationLevels
2015-07-24 11:20:57 来源: 作者: 【 】 浏览:3
Tags:重读 ACritiqueofANSISQLIsolationLevels
A Critique of ANSI SQL Isolation Levels

1. 1995年发表。
2. SQL是以现象(phenomena)来定义四个隔离级别的,但是与实际系统差别太大。
3. SQL没有涵盖某些常见的隔离级别,特别是多版本并发控制下的Snapshot Isolation。
4. 关系 数据库ACID默认是要支持可串行化的,不过实际系统大多提供了较低的隔离级别。这也为NoSQL、NewSQL只提供较低的隔离级别提供了论据。
5. SQL标准的phenomena包括:Dirty Read、Non-repeatable Read和Phantom。
6. Phenomena与anomalies是有区别的。
7. SQL的隔离级别带有很强的封锁实现的影响,用phenomena来定义隔离级别是为了允许非封锁的实现。
8. Gray以前是用一致性程度来定义不同的隔离级别的,它和SQL的定义是不一样的。
9. 什么是可串行化是有严格定义的。
10. SQL定义的现象可以从严解释或从宽解释(这就是用自然语言定义的缺点,容易导致歧义)。
11. SQL对可串行化的定义很是比较明确的,只不过那个表格容易误导大家。这也是为什么 Oracle等只实现了Snapshot Isolation的产品也被大家误认为支持可串行化。
12. 经典的读锁、写锁、两阶段锁以及对应的隔离级别的定义。
13. 隔离级别之间的关系定义:强,弱,等价,不可比。
14. DB2也就是C J Date定义的游标稳定性和可重复读级别。
15. Dirty Write、Lost Update、Constraint violation(Read Skew、Write Skew)。
16. 不同多版本 系统的做法,例如:Oracle的Read Consistency。
17. SQL里头的REPEATABLE READ其实名不副实。
xx. 虽然拿这些现象来定义不同的隔离级别看起来不太严谨,但是它们有助于我们识别不同隔离级别、不同实现(不管它们给隔离级别起了什么花里胡哨的名字)的差异。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据库中导出表中相应字段到指定.. 下一篇current_schema参数的用途

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)
·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)