Indexovani - teorie

Miroslav BENES mbenes na tenez.cz
Středa Říjen 16 12:54:20 CEST 2002


> Kdyz jsme u tech indexu, tak me napada otazka.
> Kdyz mam napr. SQL 'SELECT sl1,sl2,sl3 FROM tbl WHERE sl1='xxx' AND
> sl2='yyy' je lepsi provest indexovani jednotlive(tj. prvni index na
> sl1 a druhy index na sl2) nebo provest jeden slouceny index?


Pokud jsou oba indexy nezavisle, musi se pouzit jeden z nich a 
ve vysledku se pak pohybovat sekvencne. Takze uspora bude dost 
pochybna. 

Na uvedeny priklad je nutne nasadit slozeny index. A to jeste 
muze a nemusi byt opouzit podle toho, ajk je vyhodnocen inen 
vyraz. Takze se pak muzeme dockat rapidni zmeny casu pokud 
podminku zmenime na .. where sl2="yyy" and sl1="xxx".


> Druhy
> pripad je v podstate stejny jen misto operatoru AND dojde k
> nahrazeni operatorem OR.

Pokud se budete dotazovat ... sl1="xxx" OR sl1="yyy", pak tu 
neco neni v poradku - bud ten kdo pokladal dotaz se upsal nebo 
ten kdo navrhoval tabulku mel den predtim bourlivou ne a malo se 
vyspal....



Naopak pokud se bude dotazovat pomoci podminky
sl1="xxx"

a nekdy pomoci

sl1="xxx" and sl2="yyy"

.. pak je ucelne nasadit jen slozeny index sl1+sl2. Pro prvni 
typ dotazu pujde pouzit taky a pro druhy bude uplne optimalni.





--------------------------
Miroslav BENES
E-mail   : mbenes na tenez.cz
TENEZ Chotebor, a.s
--------------------------



Další informace o konferenci Databases