sql-server – 要NOLOCK或NOT NOWOCK,那就是问题

前端之家收集整理的这篇文章主要介绍了sql-server – 要NOLOCK或NOT NOWOCK,那就是问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这更像是一个关于nolock的具体问题的讨论.

我最近接手了一个应用程序,几乎每个查询(还有很多)都有nolock选项.现在我对sql服务器很熟悉(使用Oracle 10年),但是我觉得这非常令人不安.所以这个周末,我正在和一个经营一个相当大的电子商务网站的朋友交谈(名字将被保留以保护有罪),他说他必须用他所有的sql服务器来做这件事,因为他总是会陷入僵局.

这是sql Server的一个很大的短暂下降吗?这只是DB设计中的一个失败(我的不是第三级,但是它的关闭)有没有人在那里运行没有nolock的sql服务器应用程序?这些是Oracle处理更好的更多的grandulare记录锁的问题.

sql Server是不是无法处理大负载?有没有更好的解决方法,比阅读未通用的数据?我很想听听人们的想法.

谢谢

解决方法

sql Server在sql Server 2005中添加了快照隔离,这将使您仍然可以读取最新的正确值,而无需等待锁定. StackOverflow也使用快照隔离.快照隔离级别或多或少与Oracle使用相同,这就是为什么死锁在Oracle框上不是很常见.如果您启用它,请注意有足够的tempdb空间

从书籍在线

When the READ_COMMITTED_SNAPSHOT database option is set ON,read committed isolation uses row versioning to provide statement-level read consistency. Read operations require only SCH-S table level locks and no page or row locks. When the READ_COMMITTED_SNAPSHOT database option is set OFF,which is the default setting,read committed isolation behaves as it did in earlier versions of sql Server. Both implementations meet the ANSI definition of read committed isolation.

原文链接:https://www.f2er.com/mssql/82841.html

猜你在找的MsSQL相关文章