MooreHojer skrev:
> performance ???
Ydelse - eller lidt løsere "hastighed".
Hvis man fx skal tælle hvor mange poster der er i en database kan
man gøre det på (mindst) to måder:
a)
Dim antalPoster
antalPoster = 0
strSQL = "SELECT * FROM tabel"
set rs = Conn.Execute(strSQL)
Do While Not rs.EOF
antalPoster = antalPoster + 1
rs.movenext
Loop
rs.close
b)
Dim antalPoster
antalPoster = 0
strSQL = "SELECT COUNT(*) as Antal FROM tabel"
set rs = Conn.Execute(strSQL)
If not rs.EOF Then
antalPoster = rs("antal")
End If
rs.close
Model b vil køre mange gange hurtigere end model a - fordi
databasen kan lave optællingen i et hug, og det er hurtigere end at
bladre alle posterne igennem en for en.
En operation der henter eller skriver til en database er
forholdsvis tung (det vil sige den tager længere tid end mange
andre operationer). Derfor kan det betale sig tidsmæssigt at have
så få databasekald som muligt.
Hvis du skal have tre værdier ud fra tabellen, kan du enten lave ét
databasekald og flytte værdierne over i variable eller også lave
tre databasekald - et for hver værdi. De tre kald vil tage længere
tid og belaste serveren mere end metoden med et enkelt kald.
Meget af dette betyder ikke så meget for en side der har ganske få
besøgende. Men så snart der kommer flere samtidige brugere på
sitet, bliver performance-spørgsmålet særdeles relevant.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html