问题标签 [isolation-level]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1027 浏览

sql-server - 2000 兼容模式下的 SQL Server 2005 上的 READ_COMMITTED_SNAPSHOT?

在调查一个我认为与锁升级有关的问题并认为 READ_COMMITTED_SNAPSHOT 将是解决方案时,我检查了它是否已经启用。令我惊讶的是,该数据库的兼容性级别为 80(SQL Server 2000,我是新来的,似乎没有人或文档知道为什么!)。

但是 READ_COMMITTED_SNAPSHOT 是 2005 年的新功能。所以即使启用了,在 2000 兼容模式下运行时是否有任何影响?

0 投票
2 回答
10248 浏览

sql-server - 可重复阅读 - 我理解正确吗?

试图完全理解 SQL Server 隔离级别 - 特别是可重复读取。

我有一个存储过程,它启动一个事务并将光标放在一些数据周围(嘘声)。这可能是相当大的数据块,因此可能需要一段时间才能完成。

然后它将提交或回滚。

在此期间,在事务关闭之前,如果有人调用了导致某些受影响的行被读取的方法,我的理解是该方法将停止,直到第一个方法完成。然后将向他们提供数据(只要没有首先发生超时)

我想我是对的,但问题是——我是吗?!

0 投票
6 回答
11067 浏览

sql-server - 在 EF4 中使用 NOLOCK 提示?

我们正在评估 EF4,我的 DBA 说我们必须在所有 SELECT 语句中使用 NOLOCK 提示。所以我正在研究如何在使用 EF4 时实现这一点。

我已经阅读了有关如何在 EF4 中实现这一点的不同想法,但所有这些似乎都是一种变通方法,并且不受 Microsoft 或 EF4 的认可。在使用 LINQ-to-SQL / LINQ-to-Entities 和 EF4 时,对于希望他们的 SELECT 语句包含 NOLOCK 提示的人,“微软官方”的回应是什么?

顺便说一句,我找到的绝对最好的信息就在这里,我鼓励对这个主题感兴趣的每个人阅读这个主题。

谢谢。

0 投票
4 回答
2696 浏览

sql-server - SQL Server 中的事务隔离级别可重复读取

使用 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 时有哪些风险或性能下降?

我们有一些从 BizTalk 服务调用的 SP。我们有时会陷入僵局。如果我们改变隔离级别,有什么风险和可能的性能下降?

0 投票
1 回答
1052 浏览

c# - 设置没有 ifxtransaction 的隔离?

我正在尝试使用 IfxCommand 执行一个简单的选择查询。我想将隔离设置为脏读,但我只找到了在 IfxTransaction 的上下文中设置隔离级别的示例。我不需要事务,因为我只发出一个选择语句。以下是我当前的代码,这是最好的方法吗?另外,如果您知道隔离级别设置为脏读多长时间,我想知道。

0 投票
1 回答
200 浏览

sql-server - 数据库锁需要事务吗?

“无论事务如何,每个语句(选择/插入/删除/更新)都有一个隔离级别”是真的吗?

我有一个场景,我在事务(ReadCommitted)中设置了语句的更新。另一个不在事务中的集合(选择语句)。

  1. 在这种情况下,当第一组正在执行另一个等待时。
  2. 如果我为 DB 死锁设置 READ_COMMITTED_SNAPSHOT。

    /li>

要解决这个问题,我是否需要在 TransactionScope 中放入“Select”语句?

0 投票
5 回答
8027 浏览

django-models - mysql 和 postgresql 中的 Django 事务隔离级别

你知道 Django 中使用的事务的默认隔离级别吗?是否可以以独立于数据库的方式设置隔离级别?

我主要对mysql和postgres感兴趣。

0 投票
2 回答
1190 浏览

nhibernate - 在 SQLite 中针对 NHibernate 的 ReadUncommitted 中断

我在利用 NHibernate 的项目中将 sqlite 用于测试用例。一切都很好,除非我尝试创建一个 ReadUncommitted 事务:

例如 Session.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted)

错误信息是:

“隔离级别”

(就是这样)

调用堆栈如下所示:

如果我切换到不同的隔离级别(如序列化或已提交),一切都会正确执行。

想法?

0 投票
2 回答
397 浏览

c# - 来自 C# 的并发进程的 SQL Transaction Oddity

我们有一个 C# 系统抛出了一个我们无法用 SQL (SQL2k5) 深入了解的奇怪现象。

情况是我们有两个独立的进程同时运行,查看同一个表,它们都在两个不同集群上的两个不同服务 COM+ 组件中运行在自己的事务中。Order两者都在与OrderItemSQL 表交谈。两者都在READ COMMITTED隔离级别运行。

工作 1:将一个订单和一个或多个项目加载到这些表中。

作业 2:每隔几分钟发生的计划任务,从所述表中选择所有已完全处理的订单。

问题:我们发现,在过去的八个月中,工作 2 有四次对来自工作 1 的部分加载的订单做出反应,而工作 1 尚未完全完成(因为订单上的一个项目没有库存,它在完成状态,因此作业会看到订单的其余部分尚未加载)。

根据调查,虽然工作 1 正在进行中,但我们无法做到:

从订单中选择 *

一旦订单被插入其中。但是,我们可以这样做:

select * fromOrder o inner join OrderItem oi on oi.orderid = o.id

同时(这是为什么?)。

在复制相同情况的调查中,我们无法让工作 2 看到来自工作 1 的部分创建的订单,它确实返回了一些行,但从不返回工作 1 插入的订单。然而,这正是我们生活环境中发生的事情!

有谁知道为什么会发生这种情况?

0 投票
2 回答
4647 浏览

sql-server - TransactionScope 和连接池

我正在尝试处理我们的应用程序中是否存在使用不正确 IsolationLevels 进行数据库连接的问题。我们的应用程序是一个使用 SQL Server 2005 的 .Net 3.5 数据库应用程序。

我发现连接的 IsolationLevel 在返回到连接池时不会重置(请参见此处),并且在此博客文章中读到每个新创建的 TransactionScope 都分配给它自己的连接池,这让我感到非常惊讶。

我们的数据库更新(通过我们的业务对象)发生在 TransactionScope 内(为每个业务对象图更新创建一个新的)。但是我们的提取不使用显式事务。所以我想知道的是,我们是否会遇到这样的情况:我们的 fetch 操作(应该使用默认的 IsolationLevel - Read Committed)会重用池中已用于更新的连接,并继承更新 IsolationLevel (可重复读取)?或者我们的更新是否可以保证使用不同的连接池,因为它们被包装在 TransactionScope 中?

提前致谢,

格雷厄姆