Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Efikasno paging resenje?

[es] :: .NET :: Efikasno paging resenje?

[ Pregleda: 3170 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.110.eunet.yu



+1 Profil

icon Efikasno paging resenje?29.08.2004. u 10:21 - pre 238 meseci
Neko je pominjao upite koji izgledaju ovako:

SELECT TOP 10 id, Naziv, Adresa FROM Kontakt WHERE id < :lastid ORDER BY id DESC

ali sta ako se zeli sortiranje po nekoj od kolona, recimo po nazivu, onda ovo nema smisla?
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Efikasno paging resenje?29.08.2004. u 13:29 - pre 238 meseci
Tačno, a pored toga ima još jednu manu, ovim sistemom možeš ići samo unapred i to za po jednu stranicu, pošto ti je potreban lastId trenutne stranice. Skok sa n-te na n+x (x є Z\{0,1}), stranicu nije moguć dierktno već samo iterativnim pozivanjem skripte počevši od 0-og indeksa. Jedini benefit koji imaš je što manje opterećuješ SQL server (i LAN ako je SQL remote), međutim tu ima i drugih, boljih načina za optimizaciju, kao što je keširanje...

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.82.EUnet.yu



+1 Profil

icon Re: Efikasno paging resenje?29.08.2004. u 23:39 - pre 238 meseci
Kesiranje na strani klijenta? Ali ako se zeli dvosmerno kretanje to moze dovesti do velikog opterecenja resursa kod veceg broja korisnika, a pogotovo ako su spremni da idu u dubinu po stranicama. Cini mi se da resenje ovog problema trenutno ne lezi u tehnici koliko u konceptu prikaza podataka korisniku, jer SQL Server nema podrsku za izbor tipa ROWS m TO n u odnosu na Oracle, InterBase ili MySQL. Do sada sam radio samo klasicne aplikacije (n-tier) kod kojih se broj korisnika da priblizno proceniti i odrediti prava strategija, medjutim web zahteva drugaciji pristup. Na netu sam nasao gomile razlicitih pristupa za resavanje ovog problema na SQL Server platformi ali me interesuju jos neka iskustva.
 
Odgovor na temu

BlueSoniq
zaposlen / C#, ASP.NET senior
Beograd

Član broj: 11116
Poruke: 159
80.93.225.*



Profil

icon Re: Efikasno paging resenje?01.09.2004. u 15:53 - pre 238 meseci
jedno od resenja je da se napravi upit select pa unutar njega jos jedan

select


"SELECT * FROM " +


"(SELECT TOP {0} * FROM " +


"(SELECT TOP {1} * FROM ({2}) AS s0 ORDER BY {3}) AS s1 " +


"ORDER BY {4}) AS s2 " +


"ORDER BY {3}";




 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.236.eunet.yu



+1 Profil

icon Re: Efikasno paging resenje?01.09.2004. u 23:03 - pre 238 meseci
Mislim da je tu jedan select viska (koliko sam razumeo), dovoljno je i:

SELECT * FROM

(SELECT TOP 10 * FROM IMENIK AS s0
WHERE kontakt_id > :next_id
ORDER BY kontakt_id
) AS s1

ORDER BY ime

Ovako se dobija sortiranje po imenu ali samo u okviru grupe dobijenih slogova na jednoj stranici.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Efikasno paging resenje?02.09.2004. u 07:56 - pre 238 meseci
Citat:
morlic: Na netu sam nasao gomile razlicitih pristupa za resavanje ovog problema na SQL Server platformi ali me interesuju jos neka iskustva.

Možeš i da prvo u jednu temp tabelu ubaciš ključeve iz dotične tabele u redosledu koji ti je potreban, uz jedno autoincrement polje.

Posle džoinuješ sa tom temp tabelom a u where jednostavno kažeš between po tom autoincrement polju i uzmeš opseg slogova koji ti treba.
 
Odgovor na temu

m1k4
Smederevo

Član broj: 6815
Poruke: 20
*.nat-pool.bgd.sbb.co.yu

Sajt: www.m1k4.net


+1 Profil

icon Re: Efikasno paging resenje?02.09.2004. u 14:22 - pre 238 meseci
Ja koristim u ASP.NET session, u njega smestim celokupan select* query pa onda sa njim baratam. U session drzim Array(,). Da li ovo mnogo degradira performanse, ovaj nacin koristim kako ne bih za svaku stranu otvarao novu konekciju sa serverom.
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Efikasno paging resenje?02.09.2004. u 14:38 - pre 238 meseci
Citat:
m1k4: Ja koristim u ASP.NET session, u njega smestim celokupan select* query pa onda sa njim baratam. U session drzim Array(,). Da li ovo mnogo degradira performanse, ovaj nacin koristim kako ne bih za svaku stranu otvarao novu konekciju sa serverom.

Udri calc.exe, pomnoži veličinu dobijenog dataseta sa brojem aktivnih korisnika pa ćeš videti koliko degradira performanse.

BTW, što moraš da otvaraš novu konekciju za svaku stranu?
 
Odgovor na temu

bokac
Beograd

Član broj: 19866
Poruke: 110
*.sbb.co.yu



Profil

icon Re: Efikasno paging resenje?02.09.2004. u 14:41 - pre 238 meseci
Pa ne znam sta da ti kazem m1k4, zavisi sta radis na taj nacin. Ako radis sa manjim porcijama podataka onda je ok, ali ako radis sa vecim hmm... tesko da ce da valja.
 
Odgovor na temu

[es] :: .NET :: Efikasno paging resenje?

[ Pregleda: 3170 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.