问题标签 [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 投票
3 回答
3536 浏览

sql - oracle中的READ COMMITTED数据库隔离级别

我正在开发一个连接到 oracle 的网络应用程序。我们在 oracle 中有一个表,其中有一列“已激活”。任何时候只有一行可以将此列设置为 1。为了强制执行这一点,我们一直在 Java 中使用 SERIALIZED 隔离级别,但是我们遇到了“无法序列化事务”错误,并且无法找出原因。

我们想知道 READ COMMITTED 的隔离级别是否可以完成这项工作。所以我的问题是:

如果我们有一个涉及以下 SQL 的事务:

鉴于可能同时执行多个这些事务,是否有可能多个 MODEL 行将激活标志设置为 1 ?

任何帮助,将不胜感激。

0 投票
1 回答
1209 浏览

mysql - mysql隔离级别

我对这里的文档有点困惑。我有一笔交易,其中

  1. 开始交易
  2. 做了一些更新
  3. 做了一些选择
  4. 做了更多更新
  5. 犯罪

我希望我在第3步中的选择可以看到第2步中的更新结果,但我希望能够回滚整个事情。

已提交的读取似乎意味着选择仅显示已提交的数据,而可重复读取似乎意味着所有后续选择将看到与第一次选择时存在的相同数据 - 因此忽略我的更新。read uncommitted似乎做了正确的事情,但是:“但可能会使用行的早期版本”——这也是不可接受的,因为我的选择必须看到我的更新结果。

序列化真的是我唯一的希望吗?

我正在处理这里的文档

0 投票
2 回答
17127 浏览

sql-server - 如何更改 SQL Server 2005 中的默认事务隔离级别?

我知道 SQL Server 中的默认 TRANSACTION ISOLATION LEVEL 是“已提交读”。如果我想将其更改为“READ UNCOMMITTED”,我该如何进行此配置更改?

注意:我不能使用 SET TRANSACTION ISOLATION LEVEL,它只适用于当前会话。我无法在查询中添加 NOLOCK,因为涉及到数千个查询。

谢谢


感谢您的回答。我们可以阅读脏行。在我们的案例中,更新也不是问题。但是,我真的很想改变这个隔离级别的默认配置。请帮助。

我不能“设置事务隔离级别未提交”。我必须做出全局性的改变。


我们已经仔细审查了这两个快照隔离级别。它们不能用于我们的情况。

0 投票
3 回答
1629 浏览

sql-server - SQL Server 隔离级别 - 可重复读取

我无法弄清楚为什么会发生这种情况。很确定我理解这个理论,但是我看不到的东西肯定在发生。

表 A 具有以下架构:

SprocA 将隔离级别设置为可重复读取,并从表 A 中选择具有Type=1. 它还会更新这些行。

SprocB 从表 A 中选择具有Type=2.

现在鉴于这些是完全不同的行集,如果我同时执行两者(并放WAITFOR调用以减慢它的速度),SprocB 直到 SprocA 才会完成。

我知道这与对类型的查询有关,就好像我根据主 ID 进行选择一样,它允许并发访问表。

任何人有任何启示?

干杯

0 投票
2 回答
5227 浏览

php - mySQL - 使用 PHP 的 mysqli 设置隔离级别

如何使用 mysqli 在 PHP 中将事务的隔离级别设置为“SERIALIZABLE”?我到处找了,我找不到任何关于它的信息。

是隔离级别的解释。

0 投票
1 回答
2295 浏览

sql-server - 带有 SQL Server 2005 的 Crystal Reports:设置事务隔离级别

当 Crystal Reports 查询 SQL Server 2005 数据库时,是否可以指定事务隔离级别,而无需使用以下任何方法:

  • 将报表的查询封装在一个SET TRANSACTION ISOLATION LEVEL...在查询本身之前执行的存储过程中
  • 在 Crystal Reports 中手写 SQL 查询以执行SET TRANSACTION ISOLATION LEVEL...
0 投票
1 回答
2186 浏览

sql-server - msdtc 和隔离级别

我需要澄清一下 MS-DTC 在下面给出的场景中的行为方式

1)我在事务范围内有多个连接(隔离级别 - ReadCommited),这将使 MS-DTC 现在生效:

a) MS-DTC 是否会自动将隔离级别更改为 SERIALIZABLE。

b)(Imp)如果上面的答案是肯定的并且我已经实现了基于行版本控制的隔离级别,即除了 TransactionScope,我还启用了 READ_COMMITTED_SNAPSHOT 数据库选项“ON”,它是否仍然有效意味着它是否支持“SERIALIZABLE”隔离等级。

谢谢

0 投票
3 回答
1827 浏览

sql - 在 UPDATE 语句中将未提交的数据更新到单元格

我想将存储在名称-值对数据中的表转换为 SQL Server 2008 中的关系形式。

源表

需要目标

我遵循下面给出的策略,

使用字符串表中的 ID 值填充客户表

你得到以下

通过使用 ID 列将客户连接到字符串来更新客户的其余属性。这样,客户中的每条记录都会有对应的 2 条匹配记录。

一个中间状态就像,

但这并没有按预期工作。因为在SET子句中分配值时,它只设置已提交的值而不是未提交的值。无论如何在UPDATE语句中设置未提交的值(在查询的处理时间内)?

PS: I am not looking for alternate solutions but make my approach work by telling SQL Server to use uncommitted data for UPDATE.

0 投票
4 回答
128 浏览

ado.net - 需要有关 ADO.Net 事务的帮助

我使用 Microsoft SQL Server 2005 sp3 开发 C# 窗口应用程序。
我的应用程序出现问题,而其中一位客户保存订单文档。
另一个客户端无法从订单表中选择数据,但保存过程已完成。
我使用 Transaction 和 Isolation=ReadUncommit 来保存订单文档。
我的应用程序有 3 个表是 OrderHd、OrderLine 和 OrderSerial。
每个订单文档的 OrderSerial 记录大约 1,000-5,000 条记录

//我的保存过程
try
{
dbConn.Open();
dbTran = dbConn.BeginTransaction(IsolationLevel.ReadUncommitted);
//1) 保存 OrderLine
//2) 保存 OrderSerial
//3) 保存 OrderHd
dbTran.Commit();
}
异常
{
dbTran.Rollback();
}
最后
{
dbConn.Close();
}

我该如何解决这个问题???_ _"

0 投票
2 回答
696 浏览

sql - TSQL 快照隔离

使用 SQL2k5,我有一个临时表,其中包含将填充许多其他表的列。例如,这样的语句:

然后,[appTable1] 上的触发器会将新插入的行的标识列值填充回 [stageTable];对于这个例子,我们会说它是 [stageTable].[appTable1_ID] 然后作为 FK 插入到其他表中。更多类似的陈述如下:

这个过程继续通过许多这样的表。如您所见,我没有在暂存表中的 SELECT 中包含 WHERE 子句,因为该表在流程结束时被截断。但是,这留下了另一个进程在此事务的中间向此临时表添加记录的可能性,并且这些记录将不包含先前填充的 FK。我是否要发布此声明以防止这种情况发生?:

如果这是最好的解决方案,那么这样做的缺点是什么?