klurig SQL fråga i Access

Databaser & SQL

1 svar · 243 visningar · startad av MrZEr0

Medlem sedan juni 20039 inlägg
Trådstart#1

Hej,

håller på med ett besöksräknarscript till en långsam IIS server, vill därför göra en lösning där man räknar besökare per dag, alltså en databaspost per dag (ej en post per besökare som man skulle förespråka på en snabbare server, detta blir ej skoj vi >100 000 besökare).

Vill därför göra följande i Microsoft Access SQL:

(Tabellen ser ut så här: (ID, Datum, Hits))

if (Dagens Datum redan existerar i databasen) then
UPDATE hits SET Hits = hits + 1 WHERE Datum = now();
else
INSERT INTO hits (Hits, Datum) VALUES (0,now());
UPDATE hits SET Hits = Hits + 1 WHERE datum = now();
end if

Mvh

Fredrik Magnusson
http://www.fredrikmagnusson.com

Medlem sedan feb. 20011 198 inlägg
#2

Du måste ju fortfarande skicka frågan till accessfilen vid varje träff (vilket tar mycket kraft).
Det är nog bättre att du sätter en applicationvariabel om någon varit inne på sidan idag eller inte.

if not application(date) then
conn.execute("insert into hits (hits,datum) values(0,date())")
conn.execute("update hits set hits=hits+1 where datum = date()")
application(date) = true
end if
257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)