Acabei de começar a ler sobre bloqueio de tabela no SQL ( desta página )
Ele diz:
bloqueio de tabela pode reduzir a sobrecarga de aquisição de um grande número de bloqueios de linha ou página e economizar tempo de bloqueio geral
Pelo que entendi, impedirá que outra consulta acesse a tabela que bloqueei, mas por que isso melhorará o desempenho? Isso não diminuirá as consultas de rolagem quando houver vários usuários tentando usar a tabela? Alguém pode explicar um pouco mais?
Digamos que você tenha uma tabela de milhões de linhas.
Um milhão de bloqueios de linha individuais é muita memória que pode ser melhor utilizada.
Eu também li alguns artigos do SQL Server sobre escalonamento de bloqueio:
Em um ambiente multiusuário, convém evitar bloqueios de tabela, pois é ruim para uso simultâneo e propenso a impasses.
No entanto, se você fizer um grande DML em massa com muitas atualizações/exclusões em uma transação, evitará a sobrecarga do servidor de banco de dados tendo que gerenciar bloqueios na linha ou no nível da página se acabar modificando uma grande porcentagem da tabela de qualquer maneira.
Leia sua passagem citada mais de perto; não está falando sobre o desempenho geral (embora isso geralmente se aplique como um efeito secundário), está falando sobre economizar "tempo geral de bloqueio" ao fazer um bloqueio de tabela inteira, em vez de fazer um grande número de bloqueios de linha ou página.
Sim, isso poderia impedir o acesso de outras consultas, mas também o grande número de bloqueios de linha/tabela. E isso torna todo o negócio de fazer o bloqueio em menos tempo/esforço/recursos, já que está bloqueando apenas um único objeto.