Posted By: vejpuste (Libor Vejpustek) on 'CZdatabases'
Title:     Re: Optimalizace SQL dotazu?
Date:      Fri Jun  2 12:46:37 2000

> V optimalizaci se vubec nevyznam, ale potreboval bych znat alespon nejaky 
> obecny velmi casto platny zasady, na ktery je treba si dat pozor. Jak se 
> vyhnout joinum, alternativni reseni. Proste potrebuju zrychlit dotaz, ktery 
> cte data asi z 5 tabulek, nektery 1:1 k hlavni tabulce, nektery 1:n. Takze 
> kdyby se se mnou chtel nekdo podelit o sve zkusenosti s optimalizaci, jedine
> to uvitam. Diky.

    Jako prvotni zpusob optimalizace je vyroba indexu. V podstate klice pres 
ktere jsou tabulky navazany by mely byt indexovane. Vetsinou se tabulky 
propojuji pres primarni klic a ten je vetsinou formou unikatniho indexu. 
    Dalsi index je vhodny tam, kde pouzivas casty vyber a tento vybere pokud 
mozno co nejmene radku v tabulce. Napriklad pokud mas 1000 radku a v jednom 
sloupci 2 hodnoty 1 600 a 2 400 radku, tak index moc nema cenu.
    Zalezi na analyze dotazu, poctu radku v tabulkach a hodnotach ve 
vybiranych sloupcich. Nektere programy umoznuji provadet analyzu behu programu 
a pak vypise jak co propojoval. Napriklad ORACLE to umi. Pak se tim da delat 
rozumne ladeni dotazu. Jinak se musis orientovat jenom podle doby zpracovani 
a to neni uplne idealni. Jednak kvuli zatezi stroje a jednak kvuli cachovani.
    Pokud das nejaky popis struktur a prikaz, ktery pouzivas, tak Te treba 
nekdo nasmeruje.

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

Search the boards