Re: Иерархический запрос

From
Алексей Проценко ()
To
Konstantin Nagaev ()
Date
2002-07-11T14:14:36Z
Area
RU.DBMS.ORACLE
From: "Алексей Проценко" <avproc@ruyan.ru>

Да, прочел. Идея действительно интересная.
И когда мне приведется создавать древовоидные структуры,
непременно попробую. Но нынче мне это не светит.
Я всего лишь дополняю функциональность существующего приложения
разработанного на основе существующей структуры.
И хотя имею право ее отчасти менять, каждое такое действие
имеет реальную стоимость в человеко-часах, которые МНЕ придется
потратить
на перекодирование. Так что пока хорошая жизнь откладывается в долгий
ящик.
Да и деревце обещает не превышать несколько тысячь записей. Вот
колонка сумм
расти будет беспрестанно и неограниченно.

С уважением     Алексей П.

"Konstantin Nagaev" <Konstantin.Nagaev@p14.f1873.n5020.z2.fidonet.org>
сообщил/сообщила в новостях следующее:
news:1026376394@p14.f1873.n5020.z2.fidonet.ftn...
> Hello Алексей!
>
> 10 Jul 02 18:33, Алексей Проценко wrote to Konstantin Nagaev:
>
>  АП> From: "Алексей Проценко" <avproc@ruyan.ru>
>
>  АП> Спасибо, уже прорубил. Получилось вот что:
>
>  АП> select h1.id, h1.parent_id, sum(hs.sum)
>  АП>   from
>  АП>   hier h1,
>  АП>   (select h.id, nvl(s.SUM,0) sum
>  АП>      from
>  АП>      hier h,
>  АП>      summ s
>  АП>      where h.ID = s.HIER_ID (+)) hs
>  АП>   where h1.id in (select h2.ID
>  АП>                             from hier h2
>  АП>                             connect by prior h2.id =
h2.parent_id
>  АП>                             start with h2.id = hs.id)
>  АП>   group by h1.id, h1.parent_id
>
>  АП> С функцией по скорости не сравнить.
>
>  АП> Но осталась проблемка с сохранением древовидной сортировки.
>  АП> Ни в подзапрос, ни в представление  упрятать этот запрос не
удается,
>  АП>  так чтоб сказать сказать ему select * from (....) connect by
....
>  АП> start with...
>  АП> и получить правильное деревце. Таблицу (snapshort), делать не
хочется
>  АП> (может просто не дозрел еще до этого).
>  АП> Подскажите, пож-ста, существуют ли какие-нибудь SQL - решения
этой
>  АП> проблемы?
> Ты точно прочёл?
> В той сруктуре, которая там описана, скорость на выборку получается
просто
> пулемётная.
> И эту проблему ты решил бы легко.
> Там заморочки только с обновлением номеров узлов.
> Но иерархические выборки потом получаются суперскоростные.
> А иерархический SQL не очень-то быстро всё-таки работает.
> У меня на 500000 записях с 5-6 уровнями работало очень напряжно,
даже при
> условии ограничения диапазона.
>
>  АП> "Konstantin Nagaev"
>  АП> <Konstantin.Nagaev@p14.f1873.n5020.z2.fidonet.org>
>  АП> сообщил/сообщила в новостях следующее:
>  АП> news:1026308373@p14.f1873.n5020.z2.fidonet.ftn...
>  >> Hello Алексей!
>  >>
>  >> 09 Jul 02 13:07, Алексей Проценко wrote to All:
>  >>
>  >>  АП> From: "Алексей Проценко" <avproc@ruyan.ru>
>  >>
>  >>  АП> Есть иерархическая табличка (статей) + табличка сумм (по
>  АП> статьям).
>  >> Посмотри, не поможет ли тебе например такой подход
>  >> http://www.intelligententerprise.com/001020/celko.shtml
>  >>
>  >>                          Best wishes, Konstantin.
>  >>
>
>
>  АП> --- ifmail v.2.15dev5
>  АП>  * Origin: MTU-Intel ISP (2:5020/400)
>
>                          Best wishes, Konstantin.
>


--- ifmail v.2.15dev5
 * Origin: MTU-Intel ISP (2:5020/400)
SEEN-BY: 50/520 523 993 51/7 450/102 159 452/25 461/33 43 640 463/220 257
SEEN-BY: 464/34 36 465/204 466/20 467/70 95 469/125 999 550/5068 4615/21
SEEN-BY: 4623/55 4625/8 9 4626/6 4631/13 4641/444 4643/19 4653/10 4657/50
SEEN-BY: 5000/44 76 5000 5001/27 77 211 5002/5002 5003/9 34 5004/16 5005/44
SEEN-BY: 5006/1 5007/1 5009/9 5010/70 77 222 5011/13 5012/1 5015/4 28
SEEN-BY: 5019/22 28 5020/20 37 52 52 69 79 104 114 115 118 128 150 175 194
SEEN-BY: 5020/238 238 348 362 392 400 400 496 642 647 732 753 758 760 768
SEEN-BY: 5020/870 902 921 982 1057 1100 1169 1200 1212 1234 1301 1423 1535
SEEN-BY: 5020/1626 1642 1694 1873 1930 1951 2013 2020 2200 3637 4400 4441
SEEN-BY: 5021/3 29 5022/5 5023/11 5024/11 5025/3 5026/14 45 78 5028/51
SEEN-BY: 5029/16 50 5030/115 175 195 251 382 448 613 757 920 953 1016 1023
SEEN-BY: 5030/1400 1900 5031/26 5032/6 16 5033/1 5034/1 5035/10 5036/1 13
SEEN-BY: 5037/21 5038/7 5040/33 47 5041/4 5042/8 5045/7 42 5049/1 64 125
SEEN-BY: 5050/9 5051/15 35 5052/4 5053/16 18 777 5054/1 9 10 30 37 50 79
SEEN-BY: 5056/16 5057/1 5058/24 1000 5059/10 5060/88 90 5061/6 15 5063/27 60
SEEN-BY: 5064/5 7 35 36 5066/18 5069/128 5070/26 66 5071/1 5075/10 5077/3
SEEN-BY: 5078/20 5079/36 45 49 5080/80 111 301 1003 5081/2 3 5082/6 5083/13
SEEN-BY: 5083/21 5085/13 75 5090/2 91 1029 5091/100 5093/27 5095/1 5100/8
SEEN-BY: 5100/113 6009/8 6023/1 6028/1 6035/1 6037/1 6083/1
PATH: 5020/400 238 52 5054/1 79