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