使用 (nolock) 选择

Jai*_*dra 5 sql-server select deadlock sql-server-2008

我的老板一直强迫我编写 SELECT 查询以with (nolock)防止死锁。但据我所知,Select 语句默认没有锁,因此选择 withwith (nolock)和选择 without 没有任何区别。如果我错了,请纠正我。

两个查询:

SELECT * from EMP with (nolock)

SELECT * from EMP 
Run Code Online (Sandbox Code Playgroud)

两者不是一样的吗。如果不加nolock会不会容易出现死锁?请告诉我应该使用什么。

sam*_* yi 3

使用 Nolock 时应极其谨慎。对nolock(读未提交)提示最常见的理解是读取尚未提交的数据。然而,还有其他非常危险的副作用。(搜索“nolock”和“页面分割”)

这里有一篇非常好的文章... https://www.itprotoday.com/sql-server/beware-nolock-hint

简而言之,“不锁定”一切并不总是一个好主意……如果有的话。