Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é (são) diferença entre NOLOCK e UNCOMMITTED


NOLOCK: É equivalente a READ UNCOMMITTED (fonte:MSDN )

NOLOCK ou READ UNCOMMITTED Especifica que leituras sujas são permitidas. Nenhum bloqueio compartilhado é emitido para impedir que outras transações modifiquem os dados lidos pela transação atual, e os bloqueios exclusivos definidos por outras transações não bloqueiam a leitura dos dados bloqueados pela transação atual. Permitir leituras sujas pode causar maior simultaneidade, mas ao custo de leitura de modificações de dados que são revertidas por outras transações

READ UNCOMMITTED e NOLOCK as dicas se aplicam apenas a bloqueios de dados. Todas as consultas, incluindo aquelas with READ UNCOMMITTED and NOLOCK dicas, adquirir bloqueios Sch-S (estabilidade de esquema) durante a compilação e execução. Por causa disso, as consultas são bloqueadas quando uma transação simultânea mantém um bloqueio Sch-M (modificação de esquema) na tabela