sql-server – 在每个查询中证明不使用(nolock)提示

前端之家收集整理的这篇文章主要介绍了sql-server – 在每个查询中证明不使用(nolock)提示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你有没有必要证明不使用查询提示

我在遇到非常繁忙的服务器的每个查询中看到WITH(NOLOCK).开发人员认为它应该默认处于启用状态,因为他们讨厌在代码中看到它数千次.

我试图解释它允许脏读,最终会得到坏数据,但他们认为性能权衡非常值得. (他们的数据库很乱;难怪他们有性能问题.)

如果您有一个明确的例子说明如何针对滥用NOLOCK提示提出案件,那将不胜感激.

解决方法

你选择你的战斗和战斗这样的战斗是不容易的.我们有一个系统,其中每个DML都带有ROWLOCK提示(无论是修改一行还是几千行).我举了几个例子,说明为什么它真的会伤害性能,但是由于系统已经在运行,因此存在变革的阻力.请注意,我说服他们足够不要使用这个.

NOLOCK有它的位置,但我可以推荐一些很好的参考资料,展示使用它的麻烦:

> Microsoft sql Server开发客户咨询团队博客Previously committed rows might be missed if NOLOCK hint is used
> Itzik Ben Gan在sql Magazine – Clustered Index Scans Part III
> Itkiz Ben Gan on sqlpass.org – Beware the NOLOCK hint

猜你在找的MsSQL相关文章