首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NOLOCK与Coldfusion

NOLOCK与Coldfusion
EN

Stack Overflow用户
提问于 2011-09-13 09:38:26
回答 3查看 727关注 0票数 4

前几天,一位同事告诉我,如果不在cfquery中包含查询,那么在cftransaction中使用NOLOCK是毫无意义的。他声称SQL Server将只识别事务中的NOLOCK,因此不在cftransaction中进行查询会使NOLOCK变得冗余。

有人可以确认这是真的还是假的,因为在我工作过的所有CF商店中,NOLOCK都被大量使用,而且很少在cftransaction中使用。我是不是应该认为所有这些商店中的所有查询实际上都不尊重NOLOCK

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-13 10:19:59

您的同事不正确,NOLOCK在context cftransaction之外不是多余的。

如果使用SQL Server中的默认设置,则执行的每个查询都包装在一个事务中,无论您是否已显式键入该查询。这被称为"autocommit mode“。

票数 3
EN

Stack Overflow用户

发布于 2011-09-13 10:39:11

您所需要做的就是查看SQL Server上的执行计划,看看它们是否遵守NOLOCK。我可以确认(通过多年的使用),NOLOCK确实是受人尊敬的。我不建议这样做(查看READ_COMMITTED_SNAPSHOT_ISOLATION),但无论有没有cftransaction,它都是非常荣幸的。

票数 4
EN

Stack Overflow用户

发布于 2011-09-13 10:04:56

Ben Nadel有一个很好的解释,还有几篇参考文章,比我更好地解释了NOLOCK的用法。但是,您不必在事务中使用NOLOCK来获得性能提升。

http://www.bennadel.com/blog/477-SQL-Server-NOLOCK-ROWLOCK-Directives-To-Improve-Performance.htm

希望这能有所帮助!约翰

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7395903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档