|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
Пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Есть вот такой запрос. DOCS - довольно сложный запрос, возвращает список документов, от 10 до 500 записей. Нужно получить дерево, но у некоторых документов PARENT смотрит в никуда, т.е. родительских документов нет. Такие документы выводятся на нулевом уровне (LVL), например запись с ID = 5. Проблема в том, что FB не материализует DOCS, и уже на 50 документах получаю тормоза. Можно ли как то заставить его материализовать DOCS, либо решить задачу по другому, или только GTT??? PS. Пробовал добавлять order by в DOCS и +0 в объединение, не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:01 |
|
Оптимизация запроса
|
|||
---|---|---|---|
#18+
тут две проблемы. 1. Для outer join не работают алгоритмы hash/merge 2. В рекурсивном запросе DOCS вообще будет перевыполняться на каждой иттерации Посмотрел я в расширенном плане что там происходит на тройке explain plan Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
не понятно почему нельзя соединять результаты рекурсии с DOCS через HASH JOIN с хешированием DOCS конечно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2015, 13:37 |
|
|
start [/forum/topic.php?fid=40&msg=38984693&tid=1562773]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 284ms |
total: | 393ms |
0 / 0 |