问题标签 [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 回答
12984 浏览

java - JPA 和 MySQL 事务隔离级别

我有一个本机查询,可以批量插入 MySQL 数据库:

t2此查询导致死锁:当它从with读取时insert .. select,另一个进程尝试将一行插入t2.

我不关心执行时读取的一致性,t2并且insert .. select想要将事务隔离级别设置为READ_UNCOMMITTED

如何在 JPA 中设置它?


更新

所以我最终为这种情况创建了一个常规的 SQL 连接,因为在我看来这是最简单的选择。感谢大家!

0 投票
2 回答
2115 浏览

postgresql - PostreSQL 中的 INSERT 和事务序列化

我有个问题。事务隔离级别设置为可序列化。当一个用户打开一个事务并在“table1”中插入或更新数据然后另一个用户打开一个事务并尝试将数据插入同一个表时,第二个用户是否需要等待直到第一个用户提交事务?

0 投票
1 回答
610 浏览

sql-server-2005 - 应用程序是否可以安全使用 READ_COMMITTED_SNAPSHOT?

我有一个针对 SQL Server 2005 数据库使用 COM 数据访问层的大型 Web 应用程序。默认情况下,隔离级别为 READ_COMMITTED。现在我了解了 READ_COMMITTED_SNAPSHOT 隔离级别是如何工作的,并且阅读 MSDN 说你可以透明地打开它。但是,我仍然持怀疑态度。:) 如果我从 READ_COMMITTED 更改为 READ_COMMITTED_SNAPSHOT,是否以实施方式保证我的应用程序不会中断(不要假设应用程序按规定完成所有操作)?不会向 COM 层抛出额外的异常?事务语义是否相同?

PS。通过实现方式,我的意思是故意实现 READ_COMMITTED_SNAPSHOT 隔离级别以完全像 READ_COMMITTED 一样工作,只是使用行版本控制而不是锁?

感谢您对切换到这种隔离模式的任何见解或您自己的经验。

0 投票
1 回答
711 浏览

windows-vista - 使用 CreateProcessAsUser 从服务运行应用程序

我仍在尝试运行从 Windows 服务调用它的应用程序。我尝试使用Scott Allen 描述的方式。有用。但我仍然无法将应用程序带到屏幕上与之交互。请帮帮我。

即使我告诉它使用我的凭据运行服务,它也不会将应用程序带到我的桌面上。请告诉我如何获取当前登录用户的桌面令牌并在该桌面上运行应用程序。

0 投票
1 回答
4029 浏览

windows-7 - 是否可以以管理员身份静默运行某些东西

如何在 Vista 和 Windows 7 中欺骗 UAC?我如何运行不仅需要管理员权限的东西,而且特别是必须被告知以管理员身份运行的东西。我尝试使用给定的管理员凭据启动进程,甚至尝试使用 win32 函数 CreateProcessAsUser,但除非我手动告诉它“以管理员身份运行”,否则它不会以完全管理员权限运行。如何。如果没有那个该死的愚蠢的 UAC 对话框,我怎么会默默地运行它呢?

0 投票
2 回答
5174 浏览

sql-server - 当另一个事务的事务隔离级别可使用非冲突过滤器序列化时,为什么要插入 TSQL 语句块?

可序列化事务隔离级别通过阻止对事务中表的任何插入与其他事务中的任何选择语句冲突来避免幻读问题。我试图用一个例子来理解它,但即使选择语句中的过滤器不冲突,它也会阻止插入。我将不胜感激任何解释为什么它会以这种方式运行。

表脚本

会话 - 1

会议 - 2

0 投票
6 回答
1258 浏览

c# - 如何保证数据一致性

c#应用程序。

我正在做一个选择,然后更新表中的一列。我将它们放在一个单独的事务中,隔离级别设置为可序列化。我这样做是为了实现数据一致性。

但我仍然可以检查多个用户是否能够读取(选择)相同的值并最终尝试使用相同的值进行更新。

谁能建议我如何实现一致性,例如

没有两个用户读取相同的值。
没有用户读取已更新但尚未提交的值。

0 投票
4 回答
12761 浏览

sql - 在 Sql Server 2005 中使用 UPDATE 语句避免死锁的最佳隔离级别

我需要在 sql server 表上执行更新语句。该表同时被另一个进程使用。因为有时会发生死锁,您建议使用哪种隔离级别来避免或尽量减少这些死锁?

0 投票
3 回答
7946 浏览

hibernate - 记录 JDBC/Hibernate/JPA 事务隔离级别

我正在开发一个连接到 Microsoft SQL Server 数据库的 Flex/BlazeDS/Spring/JPA/Hibernate Web 应用程序。它似乎过于激进地锁定表格。根据我的研究,使用快照隔离策略似乎是最好的选择。

我已经这样设置了:

但是,我不相信它实际上是在使用 hibernate.connection.isolation。看起来我还必须在 JDBC 数据源上设置一些属性。

我想验证它当前是否使用 4096 作为查询的事务隔离级别。

我可以将哪些包和日志级别添加到我的 logback.xml 文件中以清楚地查看特定查询正在使用的隔离级别?

谢谢!

0 投票
2 回答
1192 浏览

sql - 应该使用什么类型的 Transaction IsolationLevel 来忽略插入但锁定选定的行?

我有一个启动事务的进程,将记录插入 Table1,然后调用长时间运行的 Web 服务(最多 30 秒)。如果 Web 服务调用失败,则插入回滚(这是我们想要的)。这是插入的示例(实际上是对多个表的多次插入,但我正在简化这个问题):

我有第二个过程从第一步查询 Table1,如下所示:

然后为用户更新该行。当进程 1 运行时,Table1 被锁定,因此进程 2 将在进程 1 完成之前完成,这是一个问题,因为在进程 1 完成其 Web 服务调用时引入了长时间延迟。

进程 1 只会插入 1 的 StatusTypeId,它也是唯一插入 Table1 的操作。进程 2 只会查询 StatusTypeId = 2。我想告诉进程 2 忽略对 Table1 的任何插入,但锁定它选择的行。Process 2 的默认隔离级别等待太多,但我担心 IsolationLevel.ReadUncommitted 允许读取太多脏数据。我不希望两个用户运行 Process 2 然后意外地获得同一行。

除了 ReadUncommitted 之外,是否还有其他 IsolationLevel 可以使用,它表示忽略插入的行但确保选择锁定了选定的行?