Ошибки · Решение
SQL Server ошибка 1204: что означает и как исправить
SQL Server Database Engine не может получить LOCK resource при текущей нагрузке/конфигурации памяти и блокировок.
Короткий ответ
SQL Server error 1204 — Unable to obtain a LOCK resource. Сначала зафиксируйте полный текст сообщения и контекст операции, затем устраняйте конкретную причину.
Что означает ошибка
SQL Server Database Engine не может получить LOCK resource при текущей нагрузке/конфигурации памяти и блокировок.
Возможные причины
- Очень большое число одновременно удерживаемых блокировок.
- Долгие транзакции удерживают lock resources дольше ожидаемого.
- Недостаток доступной памяти для lock structures или неоптимальный шаблон запросов.
Что проверить
- Найдите долгие транзакции и запросы с большим числом locks.
- Проверьте блокировки, memory pressure и конфигурацию экземпляра.
- Сопоставьте 1204 с ростом concurrency и длительностью транзакций.
Безопасные шаги
- Сократите чрезмерно долгие транзакции и объём одновременно удерживаемых locks.
- Исправляйте причину нагрузки/памяти, а не просто повторяйте запрос бесконечно.
- После изменений повторите workload и проверьте отсутствие нового 1204.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если SQL Server 1204 повторяется после базовой проверки, приложите полный текст ошибки, SQL Server error log, версию/edition и контекст операции DBA или владельцу инфраструктуры.
Похожие ошибки
- /errors/sql-server-error-102/
- /errors/sql-server-error-823/
- /errors/sql-server-error-824/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.