0

可能重复:
SQL Server NOLOCK 关键字

这些sql查询有什么区别?

  1. SQL查询:

    SELECT 
    U.ID_USER AS ID,
    U.USERNAME AS NICK,
    U.PASSWORD AS PASS
    FROM T_USERS AS U WITH (NOLOCK)
    
  2. SQL查询:

    SELECT 
    U.ID_USER AS ID,
    U.USERNAME AS NICK,
    U.PASSWORD AS PASS
    FROM T_USERS AS U
    
4

1 回答 1

1

即使它正在读取的数据被排他地锁定并且可以返回尚未提交的行,第一个(不带锁的查询)也不会被阻止。如果读取未提交的数据没有问题,则通常使用 NOLOCK 来减少阻塞。Nolock 指定在读取数据时不要尝试对表、行、页等资源进行锁定。

如果任何行正在修改或被独占锁定,第二个(不带锁的查询)将被阻止。它永远不会读取尚未提交的数据,因为它将被正在更改数据的进程阻止。这通常是当您不想读取未提交的数据并且准确性至关重要时。

于 2012-07-19T17:11:41.763 回答