MSSQLSERVER_1204

Сведения

Название продукта

SQL Server

Версия продукта

10.0

Номер сборки продукта

10.00.0000.00

Идентификатор события

1204

Источник события

MSSQLSERVER

Компонент

SQLEngine

Символическое имя

LK_OUTOF

Текст сообщения

Экземпляру компонента SQL Server Database Engine не удается получить ресурс LOCK в данный момент времени. Запустите инструкцию повторно, когда число активных пользователей уменьшится. Попросите администратора баз данных проверить конфигурацию блокировки и памяти для данного экземпляра либо выполнить проверку давно выполняющихся транзакций.

Объяснение

SQL Server не удается получить ресурс блокировки. Возможны следующие причины этой ошибки.

  • SQL Server не удается получить дополнительную память операционной системы из-за того, что другие процессы используют ее, либо из-за того, что сервер работает с заданным значением параметра max server memory.

  • Диспетчер блокировок не может использовать более 60 процентов доступной памяти для SQL Server.

Действия пользователя

Если возникли подозрения, что SQL Server не может выделить необходимое количество памяти, попробуйте следующее.

  • Если другие приложения, кроме SQL Server, используют ресурсы, попытайтесь закрыть эти приложения или запустите их на отдельном сервере. В результате память от других процессов освободится для SQL Server.

  • Если задан параметр max server memory, увеличьте его значение.

Если есть подозрения, что диспетчер блокировок использовал максимальное количество свободной памяти, определите, какая транзакция удерживает больше всего блокировок, и завершите ее работу. С помощью следующего сценария можно определить, какая из транзакций удерживает больше всего блокировок:

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

Завершите работу сеанса с первым идентификатором с помощью команды KILL.