我对上面的问题有疑问。我们在整个应用程序中使用 with nolock。在某些情况下,我需要更快地进行选择,无论效果如何。
所以select with(TABLOCKX)
会更快还是with(nolock)
?
我对上面的问题有疑问。我们在整个应用程序中使用 with nolock。在某些情况下,我需要更快地进行选择,无论效果如何。
所以select with(TABLOCKX)
会更快还是with(nolock)
?
要回答您的问题,with (nolock)
表格提示会更快。
NOLOCK 通常(取决于您的数据库引擎)意味着给我您的数据,我不在乎它处于什么状态,并且在您读取它时不要打扰它。它同时速度更快,资源消耗更少,而且非常非常危险。
正如这里解释得很好NoLock
Nolock 意味着您可以读取一些锁定的行(使用共享锁)。但是您仍然需要等待其他锁。
Tablockx 意味着你用独占锁来阻塞整个表以供其他查询使用——其他会话不能锁定,你阻塞整个表后就不能被阻塞。Tablockx 主要用于快速插入。
避免在任何地方使用 nolock。尽量避免长时间使用独占锁,或者尽量减少阻塞,这样就不需要 nolocks。