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
