SQL 服务器,select 使用 (TABLOCKX) 查询是否比使用 (NOLOCK) 查询更快,反之亦然?

SQL SERVER, will select query with (TABLOCKX) faster than with(NOLOCK) or vice versa?

我有上面的问题。我们在整个应用程序中都使用了 nolock。在某些情况下,我需要更快地工作 select,这有什么影响。

所以 select with(TABLOCKX) 会更快还是 with(nolock)?

Nolock 意味着您可以读取一些锁定的行(使用共享锁)。但是你仍然需要等待其他锁。

Tablockx 表示您使用其他查询的独占锁来阻止整个 table - 其他会话无法进行锁定,您在阻止整个 table 后无法被阻止。 Tablockx 主要用于快速插入。

避免在所有地方使用 nolock。尽量避免长时间使用独占锁或尽量减少阻塞,这样就不需要无锁了。

为了回答您的问题,with (nolock) table 提示会更快。

NOLOCK 通常(取决于您的数据库引擎)意味着将您的数据提供给我,我不关心它处于什么状态,并且在您读取它时不要费心将它保持不动。它一下子变得更快,资源消耗更少,而且非常非常危险。

这里解释得很好NoLock