问题标签 [nolock]

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 投票
4 回答
64924 浏览

sql - with(nolock) 或 (nolock) - 有区别吗?

一切都基于 with(nolock) 完全适合这种情况的假设。已经有很多问题在争论是否使用 with(nolock)。

我环顾四周,无法找到 using 之间是否存在实际区别with(nolock)

或者只是(nolock)

两者在功能上有区别吗?风格?
一个比另一个旧并且有可能被弃用?

0 投票
1 回答
4048 浏览

sql - NOLOCK IN 临时表

我在我的程序中声明了一个表格,您可以在下面看到:

我执行删除功能:

我试图避免锁定 select 语句以避免死锁,即使我读取了脏数据。但是,不允许使用“with (nolock)”。错误说:

关键字“with”附近的语法不正确。如果此语句是公用表表达式或 xmlnamespaces 子句,则前面的语句必须以分号结束。

有没有办法在临时表中应用 NOLOCK?

0 投票
1 回答
152 浏览

isolation-level - 使用 Rob Conery 的 Massive 时未提交阅读

在使用 Rob Conery 的 Massive 而不编写自己的查询时,有没有办法进行未提交的读取?

它适用于主要是只读的站点。网站的 CMS 类型。

0 投票
4 回答
37059 浏览

sql - 在 SELECT 语句上使用 NOLOCK 的目的是什么?

任何人都可以提出在 SELECT 语句上发出 NOLOCK 的充分理由吗?

我正在重构一些随处可见的存储过程,据我了解,SELECT 语句上的 NOLOCK 几乎毫无用处。

0 投票
0 回答
470 浏览

sql-server - 是否有任何内置机制来排队 SQL 查询,而不是使用 NOWAIT 或 SET LOCKTIMEOUT

假设我有一个事务正在运行,同时我想在另一个连接中执行一组 SQL 查询 (SELECT)。

我可以使用 来做到这一点SET LOCKTIMEOUT,但为此我必须给出一个超时值。在我的情况下,它会有所不同,所以我不能使用固定的毫秒。

当我得到一个LockTimeOut Error.

SQL Server 2008/2012 中是否有任何内置功能?

0 投票
6 回答
84827 浏览

sql - 不允许远程表值函数调用

我怎样才能使这项工作?我正在从远程链接服务器运行表值函数。我尝试在这 4 部分命名中添加不锁定,但我仍然得到相同的错误。我正在使用 mssql-2008

0 投票
0 回答
2583 浏览

sql - 选择 WITH (NOLOCK) 和复制代理之间的死锁

我在数据库复制代理和使用 nolock 提示的 select 语句之间遇到了死锁。选择语句被选为牺牲品。这是 select 语句,正如您所见,它在 FROM 子句中的两个对象上都使用了 nolock 提示:

以下是有关死锁的更多详细信息:

我在“服务器 B”上有一个 SQL 代理作业,它调用 SSIS 包将大量数据从服务器 A 移动到服务器 B。服务器 A 上的数据源通过事务复制进行复制。服务器 A 运行 SQL Server 2008 R2 SP2,服务器 B 运行 SQL Server 2008 SP3。

SSIS 包中的数据流任务需要移动最多 1GB 的数据,并且服务器 A 和服务器 B 在地理上相距较远,因此查询可能需要一些时间。我不想阻止服务器 A 上的复制代理,所以我在数据流任务中使用了 nolock 提示。数据完整性不是这些数据的大问题。

SSIS 包已运行多次,但没有发生任何事件,但上次运行时,服务器 A 上的复制代理与使用 nolock 提示的 SSIS 包的 select 语句之间出现死锁,导致作业失败。以下是服务器 A 上 SQL Server 错误日志中的错误消息:

服务器 B 上的 SQL 代理作业历史记录中的错误消息:

0 投票
1 回答
18214 浏览

sql - 在 UPDATE 语句中使用 NOLOCK

在 UPDATE 语句中使用 NOLOCK:

以下两个查询都工作正常。

这两种在更新语句中使用 NOLOCK 的方式有什么区别(在性能方面)?

0 投票
1 回答
15018 浏览

sql-server - SQL Server NOLOCK 与 JOIN,批量加载

以下是我的场景:我有一个通过连接 4 个表返回数据的存储过程。中午有两次批量上传到上述 4 个表之一。负载持续 10-15 分钟。我不希望调用此存储过程的 UI 在这 10-15 分钟的窗口中冻结/阻塞/减速。我不关心从上面的表格中显示脏/未提交的数据。以下是我的查询:

  1. 我是否需要仅在白天加载的表上使用 NOLOCK,或者需要将 NOLOCK 添加到连接的所有 4 个表中。例如

    或者这是否足够

    /li>
  2. 如果我在检索过程开始时添加一个 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 并在最后将其重置为 READ COMMITTED ,会有什么区别吗?

谢谢

维卡斯

0 投票
1 回答
90 浏览

sql - NOLOCK 是如何工作的

我知道NOLOCK的用法,但是有人可以帮助我了解NOLOCK的机制。

  1. 如果表被写锁定,则没有锁定返回值(在写锁定期间)。

如果是,那么它将引用哪种数据状态?