14. januar 2008 - 00:21Der er
13 kommentarer og 1 løsning
Langsom ASP kode
Hejsa,
Jeg er ved at bygge en "vagt kalender" - som giver mig en del problemer - dvs. siden tager ca. 20 sek. at loade, hvilket er alt for langsomt ;)
Sådan gør jeg: Først hentes alle brugerne ud af databasen, derefter loopes hver enkelt bruger ca. 30 gange, altså en kalender måned. Inde i det loop henter jeg så også yderlige ting fra databasen... Så der er altså vildt mange forbindelser til databasen.
Er der en som evt. vil kigge min kode igennem og evt. komme med rettelser eller andre gode forslag ? Ville gerne kunne loade siden hurtigere nemlig.
På forhånd tak!
KODEN: sql = "SELECT * FROM bruger ORDER BY gruppe_id,navn" SET rs = Conn.execute(sql) IF NOT rs.EOF THEN DO UNTIL rs.EOF resultat_bruger_id_2_iframe = resultat_bruger_id_2_iframe & rs("id") &","
gammelhat Ja, det ville jeg normalt også gøre - men det er ikke alle dato´er som står i databasen - jeg skal bare have udskrevet en hel måned af gangen - og derefter tilknytte de vagter som er vagtsat, det er ikke alle dage som er det, men derfor skal dagene vises alligevel...
Så det er derfor jeg ikke ved hvordan jeg drejer denne ;)
Jeg tænkte at du bare skulle lade bruger-udtrækket være, og så udføre én rs2 for hver bruger, i stedet for som nu, hvor du laver 30 kald for hver bruger
Problemet er helt klart alle de opslag du laver til i databasen (som du selv er inde på).
Som gammelhat nævner, er der ikke nogen grund til at lave en statisk forespørgsel 600 gange, dvs.
sql2 = "SELECT id,navn FROM vagter ORDER BY start_tid"
når den bare kan laves én gang og caches i f.eks. et 2D array, vha. rs.getRows (tror jeg nok den hedder. Faktisk kunne det være du skulle starte med at få den ud af din løkke...
Først og fremmest kalde tabellen med vagter inden den store løkke:
sql = "SELECT id, navn FROM vagter ORDER BY start_tid" SET rs = Conn.execute(sql) IF NOT rs.EOF THEN arrVagter = rs.GetRows() END IF rs.close set rs = nothing
Og så bruge denne kode til at generere din dropdown med vagter:
FOR EACH vagt IN arrVagter IF vagtreg_vagter_id = vagt(0) THEN selected = " selected='selected' " ELSE selected = "" END IF
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.