我在做网站和应用程序的业务是而不是任务关键 - >例如。银行软件,太空飞行,重症监护应用等等。你明白了。NOLOCK(Sql Server提示)不好的做法?
那么,有了这种大规模的免责声明,在某些Sql语句中使用NOLOCK提示是不是很糟糕?几年前,Sql管理员建议我使用NOLOCK,如果我对“脏读”感到满意,这会让我的系统性能提高一点,因为每次读取都不会锁定表/行/不管。
我被告知,如果我遇到死锁,这是一个很好的解决方案。所以,我开始关注这个想法几年,直到一位Sql guru帮我一些随机代码,并注意到我的sql代码中的所有NOLOCKS。我被礼貌地责骂,他试图向我解释(为什么它不是一件好事),我总是迷失方向。我觉得他的解释的实质是“这是一个更严重问题的创可贴解决方案,尤其是如果你遇到了僵局。因此,解决问题的根源'。
我最近做了一些关于谷歌搜索,并跨越this post来了。
那么,可以一些sql db guru sensei的请赐教吗?
我不明白Sam,如果它是一个繁重的阅读网站,请说使用快照隔离。但是,那么你说这么做,那很糟糕?或者只是使用NOLOCK? – 2009-09-21 11:47:14