带有(NOLOCK)提示的SQL服务器

sla*_*oah 1 sql sql-server performance nolock

有人可以解释一下,如果在SQL查询中使用(NOLOCK)实际上导致它们运行得更快吗?如果是这样,为什么?

Cod*_*bie 5

使用NOLOCK本身不会加快您的个人查询速度.但它允许其他查询访问同一个表,从而减少因死锁而丢失的时间.

当一个客户端选择更新表并花费大量时间来完成事务时,这尤其有用.使用NOLOCK命令,其他客户端可以执行尝试访问该表的查询.他们不必等待更新完成,因此即使一个事务仍在进行中,其他事务也可以完成.

这并不意味着使用该NOLOCK命令可以提高单个查询的性能.它简单地提高了涉及多个客户端或批量执行的整体性能.

但是,您需要注意使用时脏读的风险NOLOCK.这是一篇很好的文章,解释了为什么一般应该避免使用NOLOCK.