Ahoj, s readom z velkych tabuliek je vzdy trosku problem. Prva vec ktoru by si si mal asi ujasnit kolko dat odtial vyberas? Guru cez databazy v byvalej firme na jednom skoleni povedal ze ak sa vydera z databazy viac ako 30 % dat oplati sa aby oracle pouzil fullscan (sekvencny read blockov je rychlejsi ako range index scan). Do tejto tabulky len pribudaju zaznamy alebo ich odtial aj mazes? (oracle si udrzuje tzv. high water mark ktory mu hovory kolko blockov dana struktura obsahuje. ak data aj mazes tento high water mark moze byt nastaveny na pomerne vysoku hodnotu - pomoze drop-create, resp. truncate na upratanie prazdnych blockov. High water mark je dolezity pri fullscane.) Ak potrebujes menej dat tak skus pozriet explain plan a skusit oracle prinutit ist cestou ktora je dobra. To mozes dosiahnut spustenim statistik nad danou strukturou, resp hintovat query (s tymto asi opatrne, aj ked niekedy neni inej cesty.) Zaujmave este moze byt aka je dana struktura siroka (kolko stlpcov obsahuje, kolko riadkov sa zmesti do blocku (tu by malo zase platit cim menej blockov tym rychlejsi fullscan).
Michal. On 09/10/06, lukas <[EMAIL PROTECTED]> wrote:
> Jednou moznosti by bylo pouziti "materialized view". Asi by zalezelo > na konkretnich podminkach (jak casto pribyvaji zaznamy do prim. > tabulky)... > > "Teoreticky spravne" by bylo porovnat: (pocet_dotazu_SUM * pocet_stranek_tabulky) a (pocet_UPDATU_tabulky * 2 + pocet_dotazu_SUM) Prvni je pocet cteni pro SUM s table scanem, druhe je rezie na agregacni tabulku. Lukas