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

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

此混沌级别的作用是谁? (为什么它的名称不友好?)

引用:
ADO.NET枚举

#1 楼

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

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



DB2Connection.EnlistDistributedTransaction方法-IBM知识中心

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

评论


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

– Mark Broadbent
16年4月20日在9:18

#2 楼

您不能在SQL Server上使用它。

它在DTS中:



SQL Server中的混乱隔离级别-SQL Server代码,技巧和窍门,性能调整

并且在SSIS中:




DtsContainer.IsolationLevel属性-MSDN

更多参考,最初由Nick Chammas在注释中添加:


不支持回滚
SQL Server和Oracle不支持混乱隔离级别


#3 楼

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

DB2Connection.ConnectionString属性-IBM知识中心

也许打算用于此目的。我真的不确定,但是我认为这意味着没有可定义的事务隔离。

评论


似乎仅适用于系统i。你知道这是什么意思吗?我找不到很多有关它的信息,它说没有提交,所以我认为这意味着每个语句都是立即提交的。但这似乎与隔离级别正交,因此可能还有其他问题

–Lennart
2015年8月8日,1:19