Получился интересный вопрос, который я изо всех сил пытался решить уже несколько лет, и он становится все более серьезной проблемой. У нас есть UDF, который тщательно используется в нашей системе и возвращает единственное значение из таблицы журнала. Обычно он запускается мгновенно, однако периодически что-то происходит с его планом запроса, заставляя его работать в течение нескольких минут без возврата.
Мы обнаружили, что если мы перекомпилируем UDF, он снова работает.
Если я возвращаю план выполнения, я не получаю никакой информации, указывающей на проблему с индексом.
РЕДАКТИРОВАТЬ: Копия плана выполнения: https://filebin.net/jlxf0ejqeyz9j9b9
РЕДАКТИРОВАТЬ 2: Скриншоты exe c plan: снимок экрана 1: https://filebin.net/eula7cir72lp95iv/exec-screenshot1.png?t=0i8i2kyj
снимок экрана 2: https://filebin.net/yr2d84x5fftqjvnm/exec-screenshot2.png?t=um9ldpdk
EDIT 3: снимок экрана 3, наведенный на вызов функции: https://filebin.net/9azjdvb1mpmsi3am/exec-screenshot3.png?t=qjsemw6d
В настоящее время у нас есть задание, которое перебирает и перекомпилирует UDF каждые 30 минут, что, как я знаю, является просто ошибочным решением. Если у кого-то есть какие-либо рекомендации по дальнейшему устранению неполадок, я был бы очень признателен за ваше понимание!
К сожалению, эта проблема не всегда проявляется так часто, что мы не узнаем об этом, пока кто-то не укажет на это. .