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

sql-server-2005 - ReadUncommitted 是否意味着 NoLock

在 SQL Server 2005 中编写 SQL 语句时,READUNCOMMITTED 查询提示是否暗示 NOLOCK 或者我也必须手动指定它?

也是这样:

相同:

0 投票
4 回答
5635 浏览

sql-server - 在 NOLOCK 上使用 ADO.NET TransactionScope vs ExecuteCommand 的大容量站点,直接读取未提交?

刚刚阅读了 Omar 在他的博客 Linq to SQL 上的这篇有趣的文章,使用未提交的读取来解决事务死锁和查询超时问题,最后 Javed Hasan 开始与他争论他对大容量站点上无锁情况的解决方案。

这里要解决的问题是,从 sql 的意义上来说,我们需要使用带 NOLOCK 的 Select 语句或使用 SET TRANSACTION LEVEL READ UNCOMMITTED,否则 DB 中的大量行将被锁定并导致错误。Omar 使用的技术是 Linq2Sql,所以问题是我们如何在您的 C# 数据访问代码中实现这一点,这样就不会发生上述情况?

基本上在帖子中,Omar 通过在现实世界的站点上工作和测试以及使用 SqlProfiler 等工具来提出他的解决方案,而 Javed Hasan 则通过 MSDN 文档和 Scott Hanselman 的博客文章等来提出他的解决方案。

奥马尔建议使用以下

而 Javed Hasan 建议

我很想知道你们在 StatckOverflow 这样的高容量网站上对这个特定问题做了什么,或者 Jeff 和他们的人在这方面做了什么?

编辑:阅读第一篇文章后,我想在 Omar 的文章中指出一些事情。

  1. 他的方法确实遇到了连接问题,但他解决了,请参阅他的帖子。
  2. 更重要的是,他提到他尝试了使用 ADO.NET Transaction 的方式,甚至尝试了 Scott Hanselman 在他的博客上写的,但它不适用于大容量站点,它会大大降低性能。Omar 说,“System.Transactions 有很大的开销。我从来没有在大容量网站上使用它而不使 CPU 达到 100% 并且 Req/sec 下降到 1/10。它是为企业应用程序设计的,而不是为了高量网站。”
0 投票
16 回答
716869 浏览

sql-server - SQL Server 中的“with (nolock)”是什么?

有人可以解释使用with (nolock)查询的含义,什么时候应该/不应该使用它?

例如,如果您的银行应用程序具有高交易率并且某些表中有大量数据,那么在哪些类型的查询中可以使用 nolock?是否存在您应该始终使用它/从不使用它的情况?

0 投票
6 回答
8268 浏览

sql - 什么时候适合使用 NOLOCK?

我不时遇到一些长时间运行的查询超时问题和死锁。

我想知道什么时候最适合使用 NOLOCK 以及在哪里使用?

我是否在更新和插入中使用它?或阅读?

0 投票
6 回答
4016 浏览

sql-server - 在数据仓库场景中使用 WITH(NOLOCK) 有什么缺点吗

我有一个 Kimball 风格的 DW(星型模型中的事实和维度 - 没有迟到的事实行或列,除了作为类型 2 缓慢变化维度的一部分过期外,没有列的维度发生变化),每天处理繁重的插入和更新行(新日期)以及每月和每日报告流程。事实表按日期分区,以便于旧数据的滚降。

我理解这WITH(NOLOCK)可能会导致读取未提交的数据,但是,我也不希望创建任何会导致 ETL 进程失败或阻塞的锁。

在所有情况下,当我们从 DW 中读取数据时,我们正在从事实表中读取一个不会更改的日期(事实表按日期分区)和维度表,这些数据表的属性不会因为它们链接到的事实而发生变化.

那么 - 有什么缺点吗?- 可能在执行计划或此类操作中SELECT- 仅在同一张表上并行运行的查询。

0 投票
5 回答
27928 浏览

sql - SQL Server - 如何将(nolock)提示设置为默认值?

有没有办法告诉 sql server 使用(nolock)提示或存储过程中的每个选择?

将它添加到每个选择中是非常烦人的......

0 投票
12 回答
112595 浏览

sql - NOLOCK(Sql Server 提示)是不好的做法吗?

我的业务是制作关键任务的网站和应用程序-> 例如。银行软件、太空飞行、重症监护应用程序等。你明白了。

那么,有了这么大的免责声明,在某些 Sql 语句中使用 NOLOCK 提示是否不好?几年前,一位 Sql 管理员建议我应该使用 NOLOCK,如果我对“脏读”感到满意,这会给我的系统带来更多性能,因为每次读取都不会锁定表/行/随便。

我还被告知,如果我遇到死锁,这是一个很好的解决方案。所以,我开始遵循这个想法几年,直到 Sql 大师帮助我编写一些随机代码并注意到我的 sql 代码中的所有 NOLOCKS。我被礼貌地责骂,他试图向我解释(为什么这不是一件好事),我有点迷路了。我觉得他的解释的本质是'这是一个更严重问题的创可贴解决方案.. 特别是如果你遇到僵局。因此,解决问题的根源'。

我最近做了一些谷歌搜索,发现了这篇文章

那么,可以请一些sql db guru sensei 赐教吗?

0 投票
2 回答
571 浏览

sql - SQL Server NOLOCK 提示会返回部分写入的行吗?

首先,我不是在问是否应该使用 NOLOCK。让我们过去吧。

我想问题归结为sql server如何写入数据?是一次写入一整行还是一次写入一列?

我问是因为正在考虑 NOLOCK 提示。只要返回(或不返回)整行,脏读就可以了。部分写入的行是不可接受的。

0 投票
5 回答
80933 浏览

sql-server - sql中nolock的语法

我见过使用 nolock 和 with(nolock) 的 sql 语句,例如 -

上述哪些陈述是正确的,为什么?

0 投票
6 回答
11067 浏览

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

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

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

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

谢谢。