什么是“混沌”隔离级别?何时使用?


26

ADO.NET文档显示了将SQL事务的事务级别设置为Chaos的可能性。听起来不愉快,但是如果该功能存在,那么大概可以合理使用。

BOL中的SET TRANSACTION ISOLATION LEVEL命令(啊!看,我可以使用google和BOL)似乎什么都没有命名为“ chaos”,并且ADO.NET确实有5种模式,除了“ chaos”之外,它们还与已记录的级别很好地匹配

这个混沌水平是做什么的?(为什么它的名称不友好?)

参考: ADO.NET枚举

Answers:


11

根据DB2文档,这是一个怪异的隔离级别,在该级别中,更改在您执行后立即提交给数据库(其他用户可以看到)。

它没有明确说明,但是据我所知,也没有回滚。基本上,这意味着完全没有交易。“你说'交易',但是,我不在乎”。因此->混乱。

实际上,我在某些电子邮件列表中发现“ Chaos”实际上映射到 “ DB2 for i”中的“ * NONE”事务级别。


正如路透和格雷在他们的事务处理理论中所解释的,混沌是0度隔离。如果您认为“读取未提交”确实与读取数据的隔离有关(顺便说一下,它与混乱是不一样的)。混沌(与任何其他隔离度一样)具有许多属性-最有趣的属性之一就是它具有违反3级(可序列化的可重复读取)的能力。最重要的是,混沌只能在正确的上下文中使用(即,我建议仅对不需要回滚的数据集完全隔离地运行)。
Mark Broadbent


7

DB2具有称为“混乱”的事务隔离级别:

DB2Connection.ConnectionString属性 -IBM知识中心

也许就是为了这个目的。我确实不确定,但是我认为这意味着没有可定义的事务隔离。


2
似乎仅适用于系统i。你知道那是什么意思吗 我找不到很多有关它的信息,它说没有提交,所以我认为这意味着每个语句都是立即提交的。但这似乎与隔离级别正交,因此可能还有其他地方
Lennart
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.