I'm in the business of making website and applications that are not mission critical -> eg. banking software, space flight, intensive care monitoring application, etc. You get the idea.
那么,有了这么多的免责声明,在某些Sql语句中使用NOLOCK提示是否不好?几年前,一位Sql管理员同事建议,如果我对"脏读"感到满意,我应该使用NOLOCK,因为每次读取都不会锁定表/行/任何内容,这将使我的系统性能提高一点.
我还被告知,如果我遇到死锁,这是一个很好的解决方案.所以,我开始遵循这个 idea 好几年了,直到一位Sql专家帮我编写一些随机代码,并注意到我的Sql代码中所有的NOLOCK.我被礼貌地责骂了一顿,他试图向我解释(为什么这不是一件好事),我有点迷路了.我觉得他的解释的实质是"这是一个解决更严重问题的创可贴解决方案."尤其是当你遇到死锁时.因此,请解决问题的根源".
我最近在谷歌上搜索了一下,发现了this post个.
那么,一些sql db大师的老师能启发我吗?