Решение проблем MS SQL Server с блокировками

Время чтения - 1 мин.Дата публикации 24.08.2020 (обновлено 21.05.2026)

Как я обычно отлавливаю и убиваю блокировки в SQL Server

Первое, что должно насторожить: простой запрос к одной таблице вдруг зависает, а к другим — летит мгновенно. Классический признак блокировки. Лично я с таким сталкиваюсь регулярно, особенно в горячих базах.

Проверяем, есть ли вообще заблокированные процессы. Вот мой любимый запрос:

SELECT cmd, *
FROM sys.sysprocesses
WHERE blocked > 0

Если запрос вернул строки — отлично, мы нашли виновника. Смотрим на колонку blocked. Там указан spID процесса, который захватил ресурсы и держит их мертвой хваткой.

Дальше просто — убиваем его командой:

KILL 54

Но важно: команда выполняется на сервере из-под администратора. Без прав не сработает — проверено не раз.

Пример из практики: как-то у нас висел отчет по продажам. Оказалось, коллега запустил тяжелый апдейт и ушел на обед. SPID 54 блокировал таблицу. Один KILL — и все снова работает.

Что это за запрос? Смотрим последний

Интересно же, какой именно запрос вызвал блокировку. Использую DBCC INPUTBUFFER — он показывает последнюю команду, выполненную в рамках конкретного SPID:

DBCC INPUTBUFFER(61)
GO

В скобках подставляете нужный SPID (тот самый blocked из предыдущего запроса).

Еще пример: после KILL я часто проверяю, что именно там было. Однажды нашли UPDATE без WHERE — классика. Пользователь случайно залил миллион строк.

Полезные ссылки

Насколько полезной была статья?

Что еще посмотреть по SQL Server

SQL Management Studio медленно работает, тормозит. Как решить проблему

Ошибки в SQL запросах и хранимых процедурах

Не запускается Configuration Manager

Решение ошибки Cannot resolve the collation conflict between

SQL. Ошибка. Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

SQL. Получение null при конкатенации (объединении) строк

SQL. Проблема с доступом к таблице БД

SQL Server. Ошибка Table:String or binary data would be truncated. The statement has been terminated.

Сколько памяти использует SQL Server

Дедлоки при update, insert

Высокое значение Resource Monitor в sp_who2 (загрузка CPU больше 50%)

Проблема Не получается сделать take offline для базы данных

Дополнительный заработок для разработчиков на T-SQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML.
Falcon Space - платформа для создания сайтов с личными кабинетами
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK