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

Odpovedet emailem