DBAtlas · Atlas de operações de banco de dados

1204: The instance of the SQL Server Database Engine cannot obtain a LOCK resource (a instância do SQL Server Database Engine não consegue obter um recurso LOCK)

SQL Server

O que significa?

O SQL Server não conseguiu alocar a memória de que o lock manager precisa e não pode criar mais locks. A operação falha porque o pool de memória de locks está esgotado.

Por que acontece?

Locks de granularidade fina (linha/página) demais mantidos ao mesmo tempo: DML grande, sem índice ou em massa; lock escalation impedido; pressão geral de memória no servidor; ou transações abertas de longa duração. Às vezes, a pressão externa de memória é o gatilho.

Como resolver

Divida operações grandes em lotes menores para reduzir o número de locks simultâneos. Use índices adequados para reduzir o número de linhas varridas/bloqueadas. Revise configurações que desabilitam o lock escalation: trace flags 1211/1224 e ALTER TABLE ... SET (LOCK_ESCALATION = DISABLE); verifique com SELECT name, lock_escalation_desc FROM sys.tables; e DBCC TRACESTATUS(-1); Verifique a memória do servidor e a configuração max server memory, e alivie a pressão de memória.

Abrir no DBAtlas →

Mais entradas deste banco