问题标签 [read-uncommitted]

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 投票
0 回答
119 浏览

sql - 查询级别的 NOLOCK

我有一个查询来运行一个 SQL 服务器表,其中我不关心确切的计数。因此,我想为该查询指定 NOLOCK。但是,查询本身由多个子查询和多个连接组成;所以,把NOLOCK到处放是很脏的。

虽然,我可以为表设置事务级别“READ-UNCOMMITTED”,但这也会改变所有其他查询。我想更改该特定查询的事务级别,但没有在多个位置的查询中指定 NOLOCK。那可能吗?

0 投票
1 回答
684 浏览

sql-server - SQL Server 隔离级别真实世界示例

假设我们需要开发一个投标应用程序,例如 eBay 中的一个。我们不希望一个用户的出价阻止另一个用户的出价,这将导致响应缓慢。另外,当我根据我看到的最高价格出价时,我不想让应用程序说对不起,最高价格不再一样了;当我出价时,有人推高了价格。

我们应该使用哪种隔离级别?我正在考虑Read Uncommitted 脏读并且没有锁定但不确定。

我想听到更多关于 SQL Server 中隔离级别的真实示例/用例(或者一般来说,任何其他数据库软件,如果它们之间在隔离级别方面有相似之处)。对我来说,我发现仅查看定义并不是很有效。

谢谢你。

0 投票
2 回答
46 浏览

sql-server - 如何不在数据库中提交而是选择修改后的数据

我有一个包含多个表的数据库

用户可以更改表中的数据。

我的问题是,在用户单击“保存”按钮之前,我不会在数据库中进行任何更改,即使他这样做了 - 它只提交他决定保存的表

但与此同时,用户必须能够看到他所做的所有更改。并且每个“选择”都必须给他修改后的数据,而不是基础数据。

我如何一方面不提交数据库中的数据,另一方面向用户显示修改的数据?

我想进行交易而不提交,(并使用未提交的读取)但为此我不能关闭连接(如果我在没有提交的情况下关闭 - 所有更改都被取消)而且我不会留下几个的连接打开。

我还想建立一个所有更改的列表,并且每当用户进行选择时 - 首先从列表中搜索。但它很复杂,我更喜欢简单的解决方案

谢谢

0 投票
1 回答
661 浏览

mysql - MySQL InnoDB 如何实现 Read Uncommitted 隔离级别

Oracle 不允许脏读,因此甚至不允许从 JDBC 设置 Read Uncommitted。

PostgreSQL also falls back to Read Committed, when choosing Read Uncommitted.

SQL Server 定义了 Read Uncommitted 隔离级别,因为它的并发控制模型是基于锁定的(除非切换到两个快照隔离级别),因此它可能是唯一可以从避免锁定报告中看到一些性能优势的数据库确实需要严格的一致性。

InnoDB 也使用 MVCC,但与 Oracle 和 PostgreSQL 不同的是,它允许脏读。为什么会这样?直接转到最新版本而不是从回滚段重建以前的版本是否有任何性能优势?回滚段查询时间是否恢复了需要允许脏读的密集过程?

0 投票
2 回答
940 浏览

sql-server - SQL Server 长时间运行的事务

我想知道在连接上执行开始事务并立即将行更新/插入数据库并让该事务挂起几个小时的资源成本是多少。基本上我只想为我的文档管理系统执行“序列号”预订。我的系列是非常自定义的,我希望每当用户按下“添加新文档”按钮时,下一个值将分配到我的系列分配表中。为了分配它,我会在分配表中插入一行。下一次,当一个新用户请求下一个值时,将使用 NOLOCK 提示读取,这样他就会看到我挂起的插入值,这样他也会知道下一个值。如果用户取消添加新文档的表单,我只需对打开的连接执行回滚。如果连接丢失并且我处于“添加”模式,那么我将检查我分配给我的系列的当前事务 id 是否与当前事务 id 匹配。如果没有,那么我会分配另一个。不存在用户因连接丢失而丢失系列的问题。你怎么看?我觉得这是一个非常糟糕的做法,因为它与我在几年软件开发中学到的理念相矛盾:尽可能晚地打开连接并尽快关闭它。

先感谢您!

0 投票
0 回答
414 浏览

c# - 未提交事务隔离级别

我正在尝试使用该TransactionScope对象了解事务在 c# 中是如何工作的。我在 SQL Server 中对它们有所了解,但我不知道如何在c#. 例如,我想检查是否将 设置IsolationLevelReadUnCommitted,如何在我的代码中验证此行为?

目前这是我的简单代码,我想测试的是当我的第一个Update命令正在执行并且没有提交/回滚时,我如何验证其他事务能够读取它影响的数据?任何人都可以帮我一个代码示例吗?

这是我的代码:

0 投票
1 回答
26940 浏览

sql - Oracle SQL:连接语句中的 NOLOCK

我不能在连接语句中的表名之后使用 NOLOCK。尝试通过 JOIN 读取未提交的数据甚至是一个有效的场景吗

0 投票
1 回答
4455 浏览

sql-server - SET TRANSACTION 隔离级别 READ uncommitted - 是否有必要显式使用事务开始和结束?

下面的这个查询是否有效,或者我是否使用了明确的事务存在和结束?

是的,我知道未提交的读取的危险

0 投票
0 回答
909 浏览

sql - SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 在插入记录上

考虑以下 SQL 语句:

我是否正确地说不需要这个隔离级别,因为我们正在做一个简单的插入?实际上没有阅读任何东西

0 投票
3 回答
4642 浏览

c# - 带有 TransactionScope 的 EF6 - IsolationLevel.ReadUncommitted 但首先获得了 ReadCommitted

将 EF 用于MSSQL 2008. 所以我把ReadUncommitted事务隔离级别,希望能解决,像这样,

我们SQL profiler用来追踪。但是,按顺序获取这些脚本,(期望第一个脚本未提交读取。)

审核登录

SP:StmtStarting

审核登录

尽管我可以重新发送此请求并使其顺序正确(将显示read-uncommitted以下请求,相同的SPID),但我想知道为什么它在 read-committed 命令之后发送 read-uncommitted 命令以及如何使用 EF 和TransactionScope进行修复?谢谢。