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

Problem sa optimizacijom upita

[es] :: MS SQL :: Problem sa optimizacijom upita

[ Pregleda: 2498 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Solution
Vladimir Stankovic
Solution software
Leskovac

Član broj: 46426
Poruke: 85
212.200.100.*

Sajt: www.zaljubise.net


Profil

icon Problem sa optimizacijom upita02.12.2005. u 01:15 - pre 224 meseci
Imam problem sa optimizacijom SQL upita, pa ti hosting vec po drugi put iskljucuje sajt.

Imam tabelu korisnici koja cuva registrovane korisnika. Trenutno ima oko 6000 zapisa.
Imam tabelu ocene u koju se cuvaju ocene koji korisnici dobijaju i ona ima oko 700.000 zapisa.
Prilikom prikazivanja slika korisnika na sajtu, slike se biraju RANDOM. Posto su se korisnici sajta zalili kako im se ne svidja to sto se slike ponavljaju resio sam da kreiram joj jednu tabelu ocenjene_slike koja cuva za svakog korisnika koju slika mu se prikazuje. Kada korisnik oceni necu sliku izvrsavali bi se sledeci upiti.
1. U tabeli ocene bi se dodao nivi zapis.
2. izvrsava se select upit nad tabelom korisnici kako bi se korisniku prikazala sledeca slika

taj upit izgleda ovako
select id,korisnik,... from korisnici where ((select count(*) from ocenjene_slike where korisnici.id=osobaID and " & lbKorisnikID.Text & "=logovanaOsobaID)=0
da pojasnim samo malo, OsobaID je ID ocenjenog korisnika u tabeli ocenjene_slike i logovanaOsobaID je ID korisnika koji ocenjuje.

ovaj podupit sam napravio samo sa ciljem da bi se izbeglo ponavljanje slika. Medjutim pretpostavljam da on previse opterecuje server. Da li moze da se resi ovaj problem? Da li bi problem bio resen ako bi koristio NOT IN klauzu?







www.zaljubise.net - najbolji sajt za upoznavanje
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: Problem sa optimizacijom upita02.12.2005. u 08:12 - pre 224 meseci
Malo si konfuzan ovim pitanjem ali sva sreca sajt ti vise govori :)

Prvo, ako vec mislis da ti query radi sporo proteraj Profiler pa vidi koliko mu treba vremena pa onda uporedi sa nekim drugim query-jem.


Code:

SELECT 
    id,
    ...
FROM 
    Korisnici
    LEFT JOIN (SELECT * FROM Ocenjene_Slike WHERE logovanaOsobaID = @idOsobe) AS OS ON OS.osobaID = Korisnici.id
WHERE
    OS.osobaID IS NULL


Code:

SELECT 
    id,
    ...
FROM 
    Korisnici    
WHERE
    id NOT IN (SELECT OsobaID FROM Ocenjene_Slike WHERE logovanaOsobaID = @idOsobe)

@idOsobe je parametar, pa nemoj da te to buni njega bolje prosledi nego da spajas stringove



[Ovu poruku je menjao negyxo dana 02.12.2005. u 09:14 GMT+1]
 
Odgovor na temu

Boris Maletic
Beograd

Član broj: 76606
Poruke: 3
*.beotel.net.



Profil

icon Re: Problem sa optimizacijom upita05.12.2005. u 21:23 - pre 223 meseci
Indexi su JAKO vazni - pokreni index tuning wizard i primeni njegove preporuke.
 
Odgovor na temu

[es] :: MS SQL :: Problem sa optimizacijom upita

[ Pregleda: 2498 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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