MSSQLSERVER_1204

Detalles

Nombre del producto

SQL Server

Versión del producto

10.50

Número de compilación del producto

10.50.0000.00

Identificador de evento

1204

Origen del evento

MSSQLSERVER

Componente

SQLEngine

Nombre simbólico

LK_OUTOF

Texto del mensaje

La instancia del motor de base de datos de SQL Server no puede obtener un recurso LOCK en este momento. Vuelva a ejecutar la instrucción cuando haya menos usuarios activos. Pida al administrador de la base de datos que compruebe la configuración de bloqueos y memoria de esta instancia o si hay transacciones que se ejecutan durante mucho tiempo.

Explicación

SQL Server no puede obtener un recurso de bloqueo. Esto puede suceder por una de las siguientes razones:

  • SQL Server no puede asignar más memoria del sistema operativo, ya sea porque la están utilizando otros procesos o porque el servidor está funcionando con la opción max server memory configurada.

  • El administrador de bloqueos no utilizará más del 60 por ciento de la memoria disponible para SQL Server.

Acción del usuario

Si sospecha que SQL Server no puede asignar suficiente memoria, intente lo siguiente:

  • Si hay otras aplicaciones que consumen recursos aparte de SQL Server, intente detener dichas aplicaciones o considere la posibilidad de ejecutarlas en un servidor independiente. De esta forma, se liberará memoria de otros procesos para SQL Server.

  • Si ha configurado la opción max server memory, aumente el valor de la opción.

Si sospecha que el administrador de bloqueos ha utilizado la cantidad máxima de memoria disponible, identifique la transacción que retiene más bloqueos y finalícela. Mediante el siguiente script se identifica la transacción que tiene más bloqueos:

SELECT request_session_id, COUNT (*) num_locks
FROM sys.dm_tran_locks
GROUP BY request_session_id 
ORDER BY count (*) DESC

Finalice el identificador de sesión más alto mediante el comando KILL.