sybase: problem s order by ... DESC

Pavel Kolesnikov k na les.cz
Čtvrtek Listopad 23 17:37:58 CET 2000


Dobry den,

prihodil se mi nasledujici problem:

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.

Opravdu je tomu u dotazu s "ORDER BY ... DESC" tak?

Pokud ano, jak tento problem resit?

Neprilis ciste metody, ktere me napadaji, jsou treba "odhadnout",
ze zaznamy, ktere me zajimaji, nejsou starsi nez xyz hodin, a tim
zmensit tridenou mnozinu.

Nebo krome posted ukladat a indexovat i rozdil v sekundach mezi
aktualnim datem a treba rokem 3000, takze mi pak postaci trideni
ASC :)

Oboji mi prijde trochu... zvlastni. Nevite prosim nahodou nekdo
o nejakem duchaplnejsim reseni?

Pouzivam linuxovou sybase 11.0, ale samozrejme by me zajimalo 
i jestli timto neduhem trpi i jine databaze pripadne jak se to
resi jinde.

Omlouvam se, pokud jsem timto demonstroval zakladni neznalost :)

Diky

Pavel




Další informace o konferenci Databases