@hikamurachi

Почему запрос выходит за пределы рекурсии?

Есть фрагмент запроса, только он вытягивает данные и имеет рекурсию в функции F1.
Сам по себе фрагмент работает достаточно быстро и по тестам не выходит за ограничение в 10 рекурсий.
Но если его вставить в процедуру или функцию он начинает выходить за пределы 100 рекурсий, и работать почти бесконечно.
В чем может быть проблема?
SELECT *
FROM V1
JOIN V2 ON V1.aunr = V2.aunr
JOIN T1 ON T1.aunr = V2.aunr AND T1.a_typ = 'AU'
JOIN V3 ON V3.verweis = V2.plan_id
CROSS APPLY F1(V2.aunr)
LEFT JOIN T2 ON T2.aunr_source = F1.aunr_source AND T2.aunr_new = F1.aunr_new
OUTER APPLY F2(F1.aunr_source, T2.anr)
JOIN T3 ON T3.auftrag_nr = F2.auftrag_nr AND T3.a_typ IN ('AG', 'SPL')
JOIN V4 ON T3.user_n_07 = V4.verweis
JOIN T4 ON T3.auftrag_nr = T4.auftrag_nr
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Akina:
добавьте в текст функции вывод в отдельную таблицу реперных значений, позволяющих понять, что дала очередная итерация и почему потребовалась следующая
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы