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.