DBAtlas · Atlas de operaciones de bases de datos

1204: The instance of the SQL Server Database Engine cannot obtain a LOCK resource (la instancia de SQL Server Database Engine no puede obtener un recurso LOCK)

SQL Server

¿Qué significa?

SQL Server no pudo asignar la memoria que necesita el lock manager y no puede crear más bloqueos. La operación falla porque el pool de memoria de bloqueos está agotado.

¿Por qué ocurre?

Demasiados bloqueos de grano fino (fila/página) mantenidos a la vez: DML grande, sin índices o masivo; lock escalation impedida; presión general de memoria en el servidor; o transacciones abiertas de larga duración. En ocasiones el desencadenante es la presión de memoria externa.

Cómo solucionarlo

Divida las operaciones grandes en lotes más pequeños para reducir el número de bloqueos concurrentes. Use índices adecuados para reducir el número de filas recorridas/bloqueadas. Revise las configuraciones que deshabilitan la lock escalation: trace flags 1211/1224 y ALTER TABLE ... SET (LOCK_ESCALATION = DISABLE); compruébelo con SELECT name, lock_escalation_desc FROM sys.tables; y DBCC TRACESTATUS(-1); Revise la memoria del servidor y el ajuste max server memory, y alivie la presión de memoria.

Abrir en DBAtlas →

Más entradas de este motor