|
|
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Вот на 8i и ранее есть способ отсортировать ветви в иерархической выборке через построение соответствующего индекса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. На 9i это почему-то не катит. Т.е. индеск используется, но сортировки не происходит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Т.е. только order siblings by остается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 16:52 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Убери hint по индексу и/или FIRST_ROW и посмотри как план изменится. В 9 специальнай шаг плана выполнения предусмотрен для иерархичеких запросов. Посему скорее всего только - siblings by и сотается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:13 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Странно, не меняется план, ни с FIRST_ROW, ни с RULE, ни вообще без хинта. А как он на 8-ке выглядит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:19 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
В 8i Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Но я только одного не понимаю, почему ты решил что должно быть упорядочивание? Обычный hint index() - ничего не гарантирует. Попробуй index_asc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:34 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Вот desc(убывание) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Вот asc(возрастание) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:38 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Ну или через order by гарантировано: Код: plaintext 1. 2. 3. 4. 5. 6. А индексы подхватятся при RULE в любом случае ибо RULE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:47 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Стоит признать, хоть в 9-ке и индексы подхватываются, но таким образом сортировка не производится:( А order by всю иерархию порушит. Стоит учесть при мигрировании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2003, 17:53 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Что будет если несколько корней, и их тоже нужно отсортировать? В 8-ке(i) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 09:33 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
В таком случае, Александр Сычев подсказал, следует у корней значение поля parent_id сделать не null (иначе запись не войдет в индекс), а какое-то значимое. 0, к примеру, и запрос переписать как start wih parent_id = 0. Конечно, возникает проблема с внешним ключем parent_id на первичный ключ таблицы, но можно подумать, что важнее, ссылочная целостность или сортировка. К сожалению, не могу проверить, 8i под рукой нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 10:38 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
спасибо за совет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 11:32 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
О плане выполнения в 9i --> Запрос правда не совсем обычный, но на других такая же картина: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 16:47 |
|
||
|
9i: Сортировка ветвей через индекс
|
|||
|---|---|---|---|
|
#18+
Analogichiy zapros v 8i privodit k sovsem drugomu planu: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Pri etom vnuternniy podzapros --> cast(multiset(select ....)) voobsche v plane ne pokazivaetsya. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 18:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32099064&tid=1991975]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
398ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 731ms |

| 0 / 0 |
