У меня проблема с SQL Server 2005, где хранимая процедура, кажется, случайно зависает / блокируется и никогда не возвращает никакого результата.
То, что делает хранимая процедура, - это вызов функции, которая, в свою очередь, объединяет две разные функции - возвращает данные одного и того же типа, но по разным критериям.Ничего сложного.Я не думаю, что это зависание функций, потому что есть другие SPROC, которые без проблем вызывают те же функции, даже когда первый заблокирован.
После зависания SPROC любые дальнейшие попытки вызвать егоприведет к тайм-ауту - не к самому вызову, но время отклика будет слишком велико, так как результат не будет возвращен, код вызовет исключение.
Это произошло как минимум три раза за два месяцав системе с относительно низкой нагрузкой.Перезапуск SQL Server решает ситуацию, но я не рассматриваю это как «решение» проблемы.
Я искал информацию и обнаружил, что кэш запросов поврежден.Однако это было связано с динамическими строками SQL, что не является моей проблемой.Я думаю, это все еще может быть кеш запросов.
У кого-нибудь была такая же проблема, и если да, что вы с этим сделали (не говорите «перезапускайте SQL Server каждое утро»;))?Есть ли способ отладить проблему, чтобы попытаться найти именно то, что и где не так?Я не могу воссоздать проблему, но когда она появится снова, было бы хорошо, если бы я знала, где посмотреть поближе.
Не думаю, что это имеет какое-то значение, но только для протокола,SPROC вызывается из кода .NET 3.5 с использованием Entity Franework.Я говорю, что это не имеет значения, потому что, когда я тестировал выполнение SPROC непосредственно из SQL Server Management Studio, результат также не возвращался.