Bloqueios de tabela do SQL Server em consulta longa - solução: NoLock?

um relatório no meu aplicativo executa uma consulta que precisa de 5 a 15 segundos (restrita à contagem de linhas que serão retornadas). A consulta tem 8 associações a quase todas as tabelas principais do meu aplicativo (clientes, vendas, unidades etc).

Uma pequena ferramenta me mostra que, nesse momento, todas essas 8 tabelas são bloqueadas com um bloqueio de tabela compartilhada. Isso significa que nenhuma operação de atualização será executada neste período.

Uma solução de um amigo é ter todas as junções na consulta, o que não é obrigatório ter 100% de dados corretos (leitura suja), com um NoLock, então apenas 1 dessas 8 tabelas serão bloqueadas completamente. Isso é uma boa solução? Para um relatório em que 99% dos dados vieram de uma tabela, desbloqueie as tabelas menos prio?

questionAnswers(3)

yourAnswerToTheQuestion