/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
mssql increment hitcounter
Fra : Leif Neland


Dato : 30-03-07 09:01

Tabel:

Sidenr,dato,hits

Nuværende pseudokode:
Søg efter (sidenr,idag)
Hvis eof
insert(sidenr,idag,1)
ellers
execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
end


Kan det ikke optimeres til
execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
hvis affected_rows=0
insert(sidenr,idag,1)
end

Eller (der er unikt index på sidenr,dato)
insert(sidenr,idag,1)
hvis duplicate index
execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
end

mssql har jo desværre ikke MySql's "insert into ... on duplicate key update
...."

Leif



 
 
Michael Zedeler (01-04-2007)
Kommentar
Fra : Michael Zedeler


Dato : 01-04-07 08:52

Leif Neland skrev:
> Tabel:
>
> Sidenr,dato,hits
>
> Nuværende pseudokode:
> Søg efter (sidenr,idag)
> Hvis eof
> insert(sidenr,idag,1)
> ellers
> execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
> end
>
> Kan det ikke optimeres til
> execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
> hvis affected_rows=0
> insert(sidenr,idag,1)
> end
>
> Eller (der er unikt index på sidenr,dato)
> insert(sidenr,idag,1)
> hvis duplicate index
> execute(update tabel set hits=hits+1 where sidenr=.. and dato=...)
> end

Du har fat i noget. Jeg ved ikke hvilken af de to strategier
(update/insert) der er hurtigst, men det kan du jo måle dig frem til.
Jeg ville umiddelbart gå efter update-varianten.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Søg
Reklame
Statistik
Spørgsmål : 177449
Tips : 31962
Nyheder : 719565
Indlæg : 6408120
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste