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

Instruções SQL Server SELECT causando bloqueio


SELECT pode bloquear atualizações. Um modelo de dados e uma consulta projetados adequadamente causarão apenas um bloqueio mínimo e não serão um problema. A dica 'usual' WITH NOLOCK é quase sempre a resposta errada. A resposta correta é ajustar sua consulta para que ela não verifique tabelas enormes.

Se a consulta não puder ser ajustada, você deve primeiro considerar o nível SNAPSHOT ISOLATION , em segundo lugar, considere usar INSTANTÂNEOS DO BANCO DE DADOS e a última opção deve ser DIRTY READS (e é melhor alterar o nível de isolamento em vez de usar a DICA NOLOCK). Observe que leituras sujas, como o nome indica claramente, retornarão dados inconsistentes (por exemplo, sua planilha total pode estar desequilibrada).