Léxico de TI › Bancos de dados › Escalonamento de bloqueios (lock escalation)

Escalonamento de bloqueios (lock escalation)

Bancos de dados Svenska → Atualizado: 2026-10-05

O banco troca milhares de bloqueios de linha por um único bloqueio de tabela para economizar memória — e acaba com a concorrência de uma só vez.

Todo bloqueio custa memória para ser rastreado. Quando uma transação acumula bloqueios de granularidade fina em quantidade suficiente, alguns bancos os descartam e tomam um bloqueio grosso sobre a tabela inteira. O SQL Server faz isso por volta de 5.000 bloqueios num mesmo objeto. A contabilidade fica barata, mas o efeito sobre todas as outras transações é imediato.

O sintoma é característico: um job roda bem até cruzar certo volume de dados, e aí a concorrência desaba e os timeouts se espalham. A solução é dividir grandes alterações em lotes menores, não desativar o escalonamento. O Postgres não tem o mecanismo — com o MVCC, leitores nunca são bloqueados por escritores, então a pressão para economizar memória de bloqueios não surge da mesma forma.

← Voltar ao léxico