Atualizado em 23 de abril de 2015
No ano passado, reuni uma série de postagens com o objetivo de dar uma olhada detalhada na simultaneidade, nas propriedades ACID de instruções e transações e cada um dos principais níveis de isolamento no SQL Server. Agora concluí a série com um post final sobre provavelmente o nível de isolamento usado intencionalmente mais comum:leia não confirmado ("NOLOCK").
As propriedades ACID de extratos e transações |
O nível de isolamento serializável |
O nível de isolamento de leitura repetível |
O nível de isolamento confirmado de leitura |
Ler o isolamento de instantâneo confirmado |
Modificações de dados no isolamento de instantâneos confirmados de leitura |
O nível de isolamento do INSTANTÂNEO |
O nível de isolamento não confirmado de leitura |
Já que você foi paciente para a parte final, há outras leituras/observações em segundo plano na leitura descomprometida que posso oferecer:
- Lubor Kollar:linhas previamente confirmadas podem ser perdidas se a dica NOLOCK for usada
- Aaron Bertrand :Maus hábitos :Colocar NOLOCK em todos os lugares
- Craig Freedman:falha na consulta com leitura não confirmada
- Aaron Bertrand:Evite usar NOLOCK em instruções UPDATE e DELETE do SQL Server
- David Lean:Dica do SQL Server NOLOCK e outras ideias ruins
- Sunil Agarwal :Série de simultaneidade:por que recebo bloqueio quando uso o nível de isolamento Ler não confirmado ou uso a dica NOLOCK?
- Tony Rogerson:Timebomb – O problema de consistência com NOLOCK / READ UNCOMMITTED (e um acompanhamento)