
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.02.2005, 13:00
|
|||
|---|---|---|---|
|
|||
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
имеем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. работает 0.291 секунды и Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2005, 13:14
|
|||
|---|---|---|---|
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
Сложно сказать, что Вы хотите доказать этим тестом. Загоните в дерево миллиончик записей с неплохим и разветвленным уровнем вложенности и тогда уже сравнивайте тесты циклов и рекурсивных запросов, вытаскивая от всего дерева до его участков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.02.2005, 13:43
|
|||
|---|---|---|---|
|
|||
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
Я ничего не хочу доказать , я констатирую факт .. и записей в табличке около 100 тысяч .. и ветвление не больше 5 уровней (пока)..но вызовов одного из этих макросов - порядка 8 тысяч .. и вытаскивать надо именно ветку дерева (найти одного из родителей ) .. .. и задача не надуманная а конкретная .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.02.2005, 12:21
|
|||
|---|---|---|---|
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
Если я правильно понял, то в вашем запросе с циклом у каждого предка может быть только один потомок, ID которого заносится в переменную p1 на каждом шаге итерации. Запрос с WITH REQURSIVE будет работать в ситуации, когда потомков у предка будет несколько (у вас стоит inner join). Если у предка всегда один потомок, попробуйте поиграться условием соединения изменив например его на left outer join, или соединение через where в подзапросе. На моих тестах, запрос c with reqursive работал гораздо быстрее в деревьях с большим уровнем вложенности (тысячи), а на деревьях с маленьким уровнем вложенности работал не медленнее чем вылизанный запрос на циклах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.02.2005, 12:40
|
|||
|---|---|---|---|
|
|||
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
Ggg_oldЕсли я правильно понял, то в вашем запросе с циклом у каждого предка может быть только один потомок, ID которого заносится в переменную p1 на каждом шаге итерации. Запрос с WITH REQURSIVE будет работать в ситуации, когда потомков у предка будет несколько (у вас стоит inner join). Если у предка всегда один потомок, попробуйте поиграться условием соединения изменив например его на left outer join, или соединение через where в подзапросе. На моих тестах, запрос c with reqursive работал гораздо быстрее в деревьях с большим уровнем вложенности (тысячи), а на деревьях с маленьким уровнем вложенности работал не медленнее чем вылизанный запрос на циклах. Да нет тут не один потомок , а один родитель ..;-) Задача стояла найти предка (определенного типа) , который не известно за сколько сучков от данного листика .. Если конкретно то найти номер РабочейСтанции по номеру входящей в него железки . например видеокарты .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.02.2005, 10:18
|
|||
|---|---|---|---|
|
|||
WITH RECURSIVE Работает примерно в 20 раз медленнее чем цикл .. |
|||
|
#18+
ASCRUSСложно сказать, что Вы хотите доказать этим тестом. Загоните в дерево миллиончик записей с неплохим и разветвленным уровнем вложенности и тогда уже сравнивайте тесты циклов и рекурсивных запросов, вытаскивая от всего дерева до его участков.Полностью поддерживаю!!! WITH RECURSIVE - полностью показывает свои преимущества, над самописными функциями/процедурами при больших объёмах. Я утверждаю не голословно, так как поддерживаю БД, в которой листов примерно 40 млн., неговоря уже про остальные элементы древовидной структуры! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=55&tablet=1&tid=2013877]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 484ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...