Posted By: vejpuste (Libor Vejpustek) on 'CZprogram'
Title:     Re: analyze table...
Date:      Thu Sep 25 16:50:15 2003

> Posledne ste se tu tak hezky rozepsali o Oraclu, az me to mile prekvapilo.
> :-) 
> Mam dalsi dotaz. Jedna se o to, ze je tu takovej dost trapnej dotaz "select 
> neco from nekde order by neco". Tenhle dotaz lezi uvnitr jinyho, kterej si 
> tam pridava rownum a bere jen prvnich par radek a znova to sortuje. 
> Tenhle dotaz tu funguje nejaky 2 mesice v pohode, ale pred dvema dnama nam 
> slezl zoufale vykon. Ta tabulka se docela meni, teda hlavne bobtna 
> inserty/selecty sou tak fity fifty.
> Zjisitli sme, ze nam to na ten order by (podle primarniho klice) prestalo 
> pouzivat index. To je prvni zajimavy zjisteni. Proste si Oracle rek, ze uz 
> ho to s indexama neba. :-)
> Co ted. Tak predevsim, aby aplikace jela, tak sme mu to pouziti indexu
> vnutili 
> manualne a uz to jede zase dobre. Ja se chci ale zeptat, k cemu je analyze 
> table. Toho se totiz tyka to druhy zajimavy zjisteni. Kdyz totiz tu tabulku 
> necham zanalyzovat, tak ty indexy stejne nepouzije. Kdyz udelam analyze
> delete 
> statistics, tak zacne index pouzivat a kdyz to pak zase udelam estimate 
> statistics i nad celou tabulkou(!), tak ho zas prestane pouzivat. Nevite
> nekdo 
> cim to je? Chapu, ze nemuze bejt genialni a vedet vsechno, ze to nekdy selze
> a 
> tak, ale takovych tabulek tu mame vicero. Zajima me tedy cim to je, cim se
> to 
> da ovlivnit a hlavne cim ho ukecat, aby to nedelal. B-)

    Hlavne zalezi na obsahu sloupcu nad nimiz je index. Oracle provadi analyzu 
SQL prikazu a podle OPTIMIZER_MODE a obsahu pripadne statistiky ttabulky a 
indexu bud index pouzije nebo ne. Pokud je statistika tabulky a indexu 
zastarala, tak muze spatne vyhodnotit pouziti nebo nepouziti indexu.
    Obecne se da rict, ze pouziti indexu se vyplati v pripade, kdy select 
vybere co nejmin radku. Pokud vybere 90% radku a pak k nim musi dohledavat 
dalsi data v tabulce, tak je to naprosto zbytecne.
    Jako prvni muzes zkusit ruzne ladeni SQL pomoci direktiv se sledovanim co 
a jak se pouziva : set autot on. Pak se hlavne podivej na index, jestli je na 
rozumnem sloupci, na pocet zaznamu a obsah sloupce.
    Samo o sobe odladit nejake dotazy neni az tak slozite, ale chce to 
urcitou praxi a hlavne ladit, ladit, ladit.

                                        Libor Vejpustek
                                        Ceska zemedelska univerzita Praha
http://web.czu.cz/~vejpuste/            E-mail : vejpuste@uvt.czu.cz

Search the boards