Vlákno názorů k článku Stromy od Petr Ledvina - mam stromovou strukturu, ktera je relativne konstantni (prevazuje...

  • Článek je starý, nové názory již nelze přidávat.
  • 4. 3. 2005 16:08

    Petr Ledvina (neregistrovaný)
    mam stromovou strukturu, ktera je relativne konstantni (prevazuje select nad update), tak bych si molh vytvorit pomocnou tabulku (id-rodice, id-potomka, uroven), nad kterou muzu vytvorit index. Potom by slo vytvaret dotazy na seznam potomku uzlu, rodicu uzlu, omezit uroven prohledavani a podobne, vse pomerne rychle.
    Zmeny struktury by slo realizovat jako triggery a pri trose stesti by aktualizace struktury nebyla neumerne vypocetne slozita ...

    Narazim s timto pristupen na nejaky zadrhel ?
  • 4. 3. 2005 18:43

    Martin Čížek
    Zádrhel bude už při zadání dotazu (např) "Vyber všechny následníky uzlu X". Pokud víte, že strom bude mít omezenou a malou výšku (např. max. tři úrovně), pak se to dá řešit pomocí uložení odkazů na všechny předků do jedné relace.

    Předpokládám, že číslo úrovně zamýšlíte pro zlepšení výkonnosti omezením prohledávaného prostoru. Nicméně třeba úplný binární strom má v poslední úrovni polovinu všech uzlů, takže ani takto si moc nepomůžete...
  • 4. 3. 2005 19:18

    Pavel Stěhule
    Musel byste mit opravdu zvlastni typ dat, aby se to vyplatilo. Stromy jsou jeden z tech pripadu, kdy pouziti ulozenych procedur vede k dost divokemu zvyseni vykonu (oproti aplikacni urovni). Zazil jsem relativne velkou evidencni aplikaci MsSQL + VB, plneni stromu na aplikacni urovni bylo celkem dost brzo nevyhovujici. Prepsani do ulozene procedury zrychlilo operaci sestaveni stromu cca 10. Vami zminovana varianta materializovanych indexu by byla az na poslednim miste. Dovedu si predstavit pripady na ktere relacni databaze neni to prave orechove, a pokud je to vas pripad, pak proste pouzijte jinou databazi.