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
我有上面的问题。我们在整个应用程序中都使用了 nolock。在某些情况下,我需要更快地工作 select,这有什么影响。
所以 select with(TABLOCKX)
会更快还是 with(nolock)
?
Nolock 意味着您可以读取一些锁定的行(使用共享锁)。但是你仍然需要等待其他锁。
Tablockx 表示您使用其他查询的独占锁来阻止整个 table - 其他会话无法进行锁定,您在阻止整个 table 后无法被阻止。 Tablockx 主要用于快速插入。
避免在所有地方使用 nolock。尽量避免长时间使用独占锁或尽量减少阻塞,这样就不需要无锁了。
为了回答您的问题,with (nolock)
table 提示会更快。
NOLOCK 通常(取决于您的数据库引擎)意味着将您的数据提供给我,我不关心它处于什么状态,并且在您读取它时不要费心将它保持不动。它一下子变得更快,资源消耗更少,而且非常非常危险。
这里解释得很好NoLock