sybase: problem s order by ... DESC (jeste delsi)
Karel Zak
zakkr na zf.jcu.cz
Neděle Listopad 26 11:59:24 CET 2000
On 24 Nov 2000, Pavel Kolesnikov wrote:
> Jan Serak <sherry na pikebo.cz> wrote:
>
> :> Mam aplikaci, ktera nad nemalou tabulkou casto provadi dotazy typu:
> :>
> :> SELECT * from TABLE WHERE b_id = xxx ORDER BY posted DESC
> :>
> :> (b_id i posted jsou indexovany, posted obsahuje datetime, kdy byl
> :> dany zaznam vlozen do databaze).
> :>
> :> Tyto dotazy obcas trvaji velmi velmi dlouho, a zjevne je to tim,
> :> ze se nepouziva index nad "posted" - showplan mi totiz tvrdi, ze
> :> nejprve dochazi k insertu do worktable, a az pote k selectu,
> :> narozdil od trideni "ASC", kde ukazuje, ze se rovnou vybira.
>
> : a) pokud mate index nad b_id a jiny index nad posted, tak vzdy
> : pro pristup do tabulky lze pouzit nejvyse jeden jediny index.
>
> Mozna jsem to zbytecne zkomplikoval. V one tabulce mam i dvojity
> index pres b_id a posted. Stejny problem ale pozoruji i pri prostem
>
> SELECT * FROM table ORDER BY posted DESC
>
> kde je nad "posted" jednoduchy index.
>
> Proste ocekaval bych, ze se ten index pri trizeni pouzije.
>
> Pri listovani moudrymi knihami jsme tu nakonec narazili na stranku
> http://manuals.sybase.com:80/onlinebooks/group-as/srg1100e/sqlsrvpt/@Generic__BookTextView/7550;nh=1;pt=7550;lang=cs;uf=0?DwebQuery=desc&DwebSearchAll=1#X
> kde se pomerne nesmlouvave pravi:
>
> "The use of desc in an order by clause, to get results in
> descending order, always requires a sort."
>
> Prijde mi divne, ze by Sybase SQL server byl nejak mimoradne hloupy,
> takze chyba bude asi na me strane a skutecnost, ze ORDER BY DESC
> proste indexy nemuze pouzit je nejaky notoricky znamy a logicky
> zduvodnitelny fakt platny pro vetsinu SQL serveru - je tomu tak?
Prectete si tu delsi "uvahu" co jsem psal o indexech a ORDER BY.
- jde pouzit (nekdy) index u ORDER BY
- jde index cist pozpatku
- lze se vejit do WHERE a ORDER BY s jednim pouzitim indexu
Mozna jen pouzivate spatny SQL server :-)
Karel
Další informace o konferenci Test