Назад | Перейти на главную страницу

Запрос SQL Server зависает на неопределенное время - решение только для восстановления базы данных

Иногда мы сталкиваемся с запросом, который бесконечно зависает на нашем SQL Server. Этот запрос вызывается с отдельного веб-сервера ColdFusion.

Если я запускаю профилировщик, пока он висит, я просто вижу, что блокировки выделяются и снимаются снова и снова. Все остальные запросы к этой базе данных выполняются нормально, пока этот запрос зависает.

Странно то, что я могу запустить запрос из SSMS, и он выполняется за секунды (даже если запрос приложения завис).

Единственное решение, которое я нашел до сих пор, - это сделать резервную копию базы данных, а затем восстановить базу данных. Это сразу решает проблему.

Есть какие-нибудь подсказки относительно того, что происходит?

Заранее спасибо!

Безусловно, остановить и запустить службу SQL Server удобнее, чем выполнять операцию резервного копирования и восстановления.

Пока запрос "зависает", посмотрите на монитор активности в графическом интерфейсе или sp_who2 через Query Analyzer. Вы должны быть в состоянии идентифицировать процесс - посмотрите, чего он ждет, и не заблокирован ли он. Повторите, чтобы увидеть, что CPU / IO движется.

Также проверьте журналы SQL и NT, чтобы узнать, что происходит.

Я бы предложил все это в качестве первого шага.

Вы можете проверить отчет о заблокированном процессе, чтобы узнать, не заблокирован ли ваш запрос чем-то другим.

Проверьте этот ссылку.