Столкнулся с проблемой.
Похоже, процедура чтения лога exec master.dbo.xp_readerrorlog люто тупит и работает с ошибками. Это процедура чтения лога сервера- что может быть безопасней чтения лога?
На одних серверах без замечаний, занимает секунды. Но был замечен случай- сеанс отваливается по таймауту sqlcmd. А процесс продолжает работать. Замечаешь это не сразу. Когда процессу сдешаешь kill он уходит в rollback.
Все это время он жрет ресурсы CPU. Характерно, что на другие параметры производительности влияние оказывается незначительное, но по CPU чуть на сервер пошла нагрузка- сразу проблемы производительности.
Причины непонятны. По условию запрашивал ошибки из лога за последние полчаса. Что он делает непонятно, можно было бы этот файл с логом много раз поднять и перечитать вдоль-поперек. Похоже, ошибка именно на уровне логики процедуры.
Излечить это можно было бы перегрузкой сервера. Но серьезный сервер не так просто перегрузить, на нем постоянно работают важные процессы, это должно согласовываться с множеством людей.
Вот именно поэтому я всегда боялся самописных приложений и скриптов непонятного происхождения- лучше написать самому, но используя стандартные, штатные средства.
Не думал, что штатная процедура может быть такой опасной в использовании.
Уведомление: FIX: The execution of the xp_readerrorlog command in SQL Server 2005 and in SQL Server 2008 stops responding and the usage of the CPU that is running the command increases to 100 percent | DiggerSite