On Tue, 10 Oct 2006 15:59:45 +0200, Ing. Radek Žuja wrote
> Přiznám se že nepracuji s Oracle ale se Sybase.
> Jsem si když jsem odpovídal poznámky o platformě nevšiml
> Myslel jsem že optimizátory by v tomto případě měli pracovat 
> podobně(tedy pokud můžu scanovat index, který je menší než tabulka, 
> udělám to). Pokud máte Oracel Server nainstalovaný není nic 
> jednouššího, než to vyzkoušet na malinkém vzorku dat a zjistit si plan.
> Pokud jsem vás v tomto případě navedl špatným směrem tak se omlouvám.
> 
> 
Execution plan ani jinak vypadat nemuze, k vypoctu jsou potreba data z cele
tabulky tak ji celou musi precist. Ciste hypoteticky by mohl pouzitim indexu
necist hodnoty
 NULL a 0....

Jeste by mohlo pomoci vertical partitioning - tj. dat sloupec, pres ktery se
dela SUM do zvlastni partition. Takze bude stacit precist daleko mene stranek.


  Lukas

PS: s execution plany jsem si v posledni dobe docela hral, protoze v aplikaci,
kterou vyvijim, je zpracovani dotazu nad velkou mnozinou dat jedna z
kritickych casti. A aplikace musi bezet nad ruznymi databazemi (Oracle, DB na
PC, DB2 na AS/400, Interbase, Firebird, MS SQL Server, Informix, PostgreSQL).
Prisel jsem na nasledujici zajimava pozorovani, ktera plati pro nekrete servery:
- pri prilis slozitem dotazu, se indexy prestanou pouzivat - typicky je
nastaven nejaky limit, ktery lze zvetsit
- kdyz jsou data prilis mala, tak se pouzije table scan, coz muze mit zajimave
dusledky - viz http://www.archaebacteria.net/?p=17
- ruzne databaze pouzivaji pro stejne dotazy ruzne indexy - a vysledna
rychlost je potom dost rozdilna - na stejnych datech i o nekolik radu
- nektere databaze maji problem s pouzitim indexu, kdyz je v WHERE podmince OR
- nektere databaze stavi temporary tabulky a indexy, takze opakovane spousteni
stejnych dotazu je rychlejsi
- nektere databaze umoznuji sledovat pouziti indexu a jsou schopny doporucit
zruseni/pridani indexu

Odpovedet emailem