- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一个巨大的数据库上工作,我正在提取大量数据。例如我的查询是
select * from temp
这导致我的应用程序用户出错,然后我意识到我的问题是因为我的查询提取数据花费的时间太长。
然后我用
修改了我的查询select * from temp with(nolock)
然后一切顺利。有人请解释为什么 nolock 如此重要。
最佳答案
NOLOCK
覆盖确保您从数据库中读取的数据一致并遵守 ACID 的规则规则(A原子性、一致性一致性、I隔离、D耐用性)。
如果您在没有 NOLOCK
的情况下运行查询,那么您将始终得到相同的结果(假设在此期间没有其他人删除或更新任何数据)。
如果您WITH NOLOCK
运行查询两次或更多次,您的结果可能会有所不同。
NOLOCK
其实就是告诉DB返回它能读到的数据,不管有没有commit到数据库。
因此,总而言之:NOLOCK
很重要,无论您是否想要准确 数据。如果您想要只是数据,那么您可以使用NOLOCK
,但这通常不是一个好主意。
关于sql - 为什么在查询数据库时 nolock 很重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32984465/
我知道 with(nolock) 和 (nolock) 相同或几乎相同。 REF:with(nolock) or (nolock) - Is there a difference? 但是nolock怎
一切都基于这样的假设:with(nolock) 完全适合这种情况。已经有很多问题在争论是否使用 with(nolock)。 我环顾四周,无法找到使用 with(nolock) 之间是否存在实际差异:
我想在 Hive 中执行一个选择查询,但是花了很长时间我决定检查我的表锁定状态。显然该表已被某些正在进行的查询锁定。 我知道在这种情况下,SQL 具有with (nolock),我可以在表上应用它。
我在我的程序中声明了一个表,您可以在下面看到: Declare @resultTable Table ( EmpId int, EmpStatusId int, CreatedDateTi
使用 ActiveRecord 时需要添加“WITH NOLOCK”吗?我知道有一种方法可以做到 nHibernate,但在 ActiveRecord 中无法解决这个问题。 感谢您的帮助。 问候, 最
为了处理 SQL 超时,我尝试使用 SqlAzureExecutionStrategy ( https://msdn.microsoft.com/en-us/data/dn456835.aspx )
为什么向查询添加 nolock 会导致它增加执行时间? UPDATE TargetTable SET col1 = c1.RowCnt, col2 = c2.RowCnt
我正在 C#.Net 中创建一个自我项目,通过使用 3 层应用程序,我不想让我的 sql 语句具有事务性,这些语句用于多个存储过程,我一直在使用 WITH(NOLOCK)方法来查询在事务期间用于插入或
我正在开发一个多线程应用程序 (C#),并且 2 个线程同时使用 NOLOCK 更新表,这是一个问题吗?更具体地说,它们都更新相同的记录。 最佳答案 答案是“视情况而定”。 NOLOCK 允许“脏读”
在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST
我正在处理一个糟糕的 View ,它在内部将许多 许多 表连接在一起,其中一些是同一张表。 我想知道,当一个表被连接到自身时,如果 NOLOCK 提示是在一个连接上而不是另一个连接上,它是如何解释的?
今天我在尝试使用 NOLOCK 访问远程表时遇到了一个问题。 .我收到此错误: Remote table-valued function calls are not allowed. 在谷歌搜索这个问
我知道您通常会在表级别应用WITH (NOLOCK),但假设您希望将 15 个表连接在一起。有没有一种更简单的方法可以将 WITH (NOLOCK) 应用于所有表,而不必在每个表名后面写入它? 最佳答
在一个巨大的数据库上工作,我正在提取大量数据。例如我的查询是 select * from temp 这导致我的应用程序用户出错,然后我意识到我的问题是因为我的查询提取数据花费的时间太长。 然后我用 修
在工作中,用户非常乐意使用 Reporting Services 的报表生成器生成自己的报表。 但是,遗憾的是,它生成的查询效率非常低,而且它们不使用“WITH (NOLOCK)” - 对每个人来说都
使用 SQL Server 数据库开发 Spring-Hibernate 应用程序。我们陷入僵局。事务属性是通过 Spring 配置定义的。该应用程序在应用程序代码中实现了悲观锁定。当用户开始处理客户
有人可以给我一些指导,告诉我什么时候应该使用WITH (NOLOCK)而不是SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 各自的优点/缺点是什么?使
背景:我想运行一个对性能至关重要的查询,并且我不关心脏读。 我的问题是;如果我使用连接,我是否还必须在这些连接上指定 NOLOCK 提示? 例如;是: SELECT * FROM table1 a W
我曾在一个非常大的组织工作,他们必须在大多数查询中使用 NOLOCK - 因为数据通常在白天通过 ETL 过程更新并锁定应用程序 40% 的工作一天当然不是一个选择。 出于习惯,在我的下一个地方,我继
我正在尝试在更新查询中添加 with(NOLOCK): UPDATE pth_patchLookup with(nolock) SET ScanDateTime = Getdate() WHERE R
我是一名优秀的程序员,十分优秀!