у нас есть хранимая процедура, которая работает нормально до 10 минут назад, а затем она просто зависает после ее вызова.
замечания:
- Копирование кода в окно запроса дает результат запроса в 1 секунду
- SP занимает > 2,5 минуты, пока я не отменил его
- Монитор активности показывает, что он не блокируется ничем, он просто выполняет SELECT.
- Запуск sp_recompile на SP не помогает
- Отбрасывание и повторное создание SP не помогает
- Установка LOCK_TIMEOUT до 1 секунды не помогает
Что еще может быть?
UPDATE. Я предполагаю, что это связано с параметризацией. Я использовал процедуру Адама Маханика, чтобы узнать, какой подзапрос висит. Я нашел что-то неправильно с планом запроса благодаря намеку Мартина Смита. Я узнал о EXEC ... WITH RECOMPILE
, OPTION(RECOMPILE)
для подзапросов в SP и OPTION (OPTIMIZE FOR (@parameter = 1))
, чтобы атаковать параметр sniffing. Я до сих пор не знаю, что было не так в этом конкретном случае, но я вышел из этой битвы, приправленный и гораздо лучше вооруженный. Я знаю, что делать в следующий раз. Итак, здесь точки!