1222: Превышен тайм-аут запроса блокировки
SQL ServerЧто это значит?
Истёк тайм-аут запроса во время ожидания получения блокировки. Запрос отменён, поскольку другая транзакция слишком долго удерживала необходимый ресурс заблокированным.
Почему возникает?
Превышение времени ожидания, заданного через SET LOCK_TIMEOUT, длительные блокирующие транзакции, открытые незафиксированные транзакции, длинные сканирования и конфликты блокировок.
Как исправить
Найдите блокирующего: изучите sys.dm_exec_requests, sys.dm_tran_locks и столбец blocking_session_id или используйте sp_who2 / sp_whoisactive. Укорачивайте длительные транзакции и фиксируйте их. При необходимости настройте LOCK_TIMEOUT. В системах с преобладанием чтения сокращайте конфликты читателей и писателей с помощью RCSI/snapshot isolation.
Ещё по этой СУБД
- 18456Ошибка входа для пользователя (Login failed)
- 8152Строковые или двоичные данные были бы усечены
- 2628Строковые или двоичные данные были бы усечены в таблице, столбце ...; усекаемое значение
- 9002Журнал транзакций базы данных заполнен по причине ...
- 1105Не удалось выделить место для объекта в базе данных, поскольку файловая группа заполнена
- 208Недопустимое имя объекта
- 229Отказано в разрешении SELECT/EXECUTE на объект