n1ro°
RU

Ошибки · Решение

SQL Server ошибка 1204: что означает и как исправить

SQL Server Database Engine не может получить LOCK resource при текущей нагрузке/конфигурации памяти и блокировок.

Редакция N1RO · Проверено

Короткий ответ

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 и длительностью транзакций.

Безопасные шаги

  1. Сократите чрезмерно долгие транзакции и объём одновременно удерживаемых locks.
  2. Исправляйте причину нагрузки/памяти, а не просто повторяйте запрос бесконечно.
  3. После изменений повторите 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 не диагностировала ваш конкретный случай.