Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как избежать циклов в рекурсивных запросах
|
|||
|---|---|---|---|
|
#18+
Всем привет. Вопрос по CTE - рекурсивным. Если в БД присутствуют записи, приводящие к бесконечному циклу, как их избежать? В Oracle есть оператор nocycle (может, и костыль некий, но работает прекрасно), в Postgres есть что-то подобное? В интернетах предлагают ограничиться уровнем вложенности типа deph < 10, но это не интересно. Есть что-то более правильное, когда мы охватим все записи, но при этом, если встретим повторную запись, то не пойдем в цикл повторно? По сути, аналог nocycle в Oracle. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 13:15 |
|
||
|
Как избежать циклов в рекурсивных запросах
|
|||
|---|---|---|---|
|
#18+
Alexey Agafonov Всем привет. Вопрос по CTE - рекурсивным. Если в БД присутствуют записи, приводящие к бесконечному циклу, как их избежать? В Oracle есть оператор nocycle (может, и костыль некий, но работает прекрасно), в Postgres есть что-то подобное? В интернетах предлагают ограничиться уровнем вложенности типа deph < 10, но это не интересно. Есть что-то более правильное, когда мы охватим все записи, но при этом, если встретим повторную запись, то не пойдем в цикл повторно? По сути, аналог nocycle в Oracle. Заранее спасибо. Нет такого нет. Можно скостылить в виде массива накопителя уже увиденных данных если очень надо (но если у вас там десятки тысяч записей будут и больше обрабатываться это запретительно по памяти и скорости будет). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 13:31 |
|
||
|
Как избежать циклов в рекурсивных запросах
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2021, 15:28 |
|
||
|
Как избежать циклов в рекурсивных запросах
|
|||
|---|---|---|---|
|
#18+
Alexey Agafonov, Можно самому считать глубину рекурсии в запросе и ограничиваться по ней Код: plsql 1. 2. 3. 4. 5. 6. Альтернативное решение, как сказали выше, накопление в массиве хешей уже обработанных строк. Но это сильно медленней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2021, 11:58 |
|
||
|
|

start [/forum/moderation_log.php?user_name=%D0%B2%D0%B0%D1%81%D1%8F%D1%82%D0%B5%D1%80%D0%BA%D0%B8%D0%BD]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 2201ms |
| total: | 2384ms |

| 0 / 0 |
