Autor Zpráva
blaaablaaa
Profil
Ahoj,

mám katalog výrobků s několika set tisíci záznamy (na testování, půjde ale do miliónů). Kvůli výkonu zatím řeším stránkování tak, že si vždy v noci seřadím výrobky a do tabulky uložím jejich pořadí. Stránkuji pak jednoduše pomocí TOP 10 a WHERE ordered > @rec (kde @rec je "ordered" posledniho vyrobku na predesle strance).
Vedení si však vymyslelo, že k aktuálnímu stránkování (zpět/vpřed) chce číselně stránkování - tedy odkazy na předchozích 5 a následujících 5 stránek. To ale není pomocí současného řešení možné, napadá vás, jak to udělat?

Omlouvám se, jestli jsem to nenapsal dost srozumitelně, kdyžtak to zkusím zformulovat jinak nebo udělám výtah z praxe.
Kajman_
Profil *
A nestačí udělat pro pátou stánku top 50 a z toho vzít posledních 10?
blaaablaaa
Profil
Kajman:
Tohle jsem delal, ale ve chvili, kdyz strankuju nekolik set tisic zaznamu, trva takovy dotaz i nekolik vterin.
Kajman_
Profil *
Rozdíl mezi dotazem na top 10 a top 50 je nekolik vterin?
blaaablaaa
Profil
Kajman:
Jo takhle, omlouvám se, nejdřív jsem nepochopil. Pokud udělám top 50, vyberu jen 50 následujících, ale už ne předchozích záznamů.
Aktuálně to mám tedy tak, že provedu dva výběrové dotazy - jedním vyberu následující stránky a druhým předchozí. To mi ale taky nepřijde ideální, ale lepší řešení zatím neznám. Díky a pokud někdo víte o lepším způsobu, pište sem, prosím.
Kajman_
Profil *
Dva rychlé dotazy jsou někdy lepší než jeden dlouhý. Ony by šly spojit díky unionu, ale zase by se to složitěji zpracovávalo, co je před aktuální stránkou a co za.

Ale myslel jsem, že děláte jen jeden dotaz na data, co se mají zobrazit... buď na další pomocí >@posledni_rec nebo na předchozí <@prvni_rec. V obouch variantách pak stačí dát top 50 na pátou stránku tam nebo zpátky a vzít jen prvních či posledních 10.

Pokud se ale ty odkazy nemají ukázat, když nemají smysl, asi to bez dalších dvou dotazů nepůjde.
blaaablaaa
Profil
Kajman:
Ja si ony dotazy stejne vlozim do docasne tabulky, odkud pak vyfiltruji jen kazdy 10. zaznam (mam strankovani po 10) a vratim vysledek. Ale rychlost dotazu uz je dostacujici (a pozdejsi vetsi pocet zaznamu by to snad nemel prilis ovlivnit), takze diky za pomoc. Ale docela by mne zajimalo, zda takto strankuji vsichni (nasel jsem jeste strankovani pro maly pocet zaznamu - pro 490-500. zaznam vyberu 500 zaznamu, otocim jejich poradi a vratim top 10, coz se u takoveho mnozstvi pouzit neda).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: