1) Sim , selecione comNOLOCK
será concluída mais rapidamente que uma seleção normal.
2) Sim , uma seleção com NOLOCK
permitirá que outras consultas na tabela efetuada sejam concluídas mais rapidamente do que uma seleção normal.
Por que isso seria?
NOLOCK
normalmente (dependendo do mecanismo do banco de dados) significa me fornecer seus dados, e eu não me importo em que estado eles estão, e não me importo em mantê-los imóveis enquanto você os lê. É tudo ao mesmo tempo mais rápido, menos intensivo em recursos e muito, muito perigoso.
Você deve ser avisado para nunca fazer uma atualização ou executar algo crítico no sistema, ou onde a correção absoluta seja necessária usando dados originados de uma NOLOCK
leitura. É absolutamente possível que esses dados contenham linhas que foram excluídas durante a execução da consulta ou que foram excluídas em outras sessões que ainda não foram finalizadas. É possível que esses dados incluam linhas que foram parcialmente atualizadas. É possível que esses dados contenham registros que violem restrições de chave estrangeira. É possível que esses dados excluam linhas que foram adicionadas à tabela, mas ainda não foram confirmadas.
Você realmente não tem como saber qual é o estado dos dados.
Se você está tentando obter coisas como uma contagem de linhas ou outros dados de resumo onde alguma margem de erro é aceitável, NOLOCK
é uma boa maneira de aumentar o desempenho dessas consultas e evitar que elas afetem negativamente o desempenho do banco de dados.
Sempre use a NOLOCK
dica com muito cuidado e trate os dados que eles retornam com suspeita.