Avatar billede cool_casper Nybegynder
14. maj 2004 - 13:38 Der er 1 løsning

Udtræk i databaser tager lang tid

Hej,

Jeg har en ordresystem hvor jeg skal trække nogle dato'er ud for hver ordre. Men jeg har allerede nu (ved ca. 150 test-ordrer) for meget Eksekverings-tid. Den ligger på ca. 2-3 sekunder.
Hvis jeg fjerner min funktion der henter dato'erne så ligger jeg på 0,01 el.l.
Mit spørgsmål er nu - hvordan kommer jeg af med den tid? Det er jo tydeligvis funktionen der er skyld i det, men hvordan laver jeg en løsning der ikke tager så lang tid?

Min funktion som bliver kaldt for hver ordre i mit loop..:

Function GetDBDate(fld,rdr)
    If NOT fld = "" OR rdr = "" then
        sSQL =     "SELECT " & fld & " FROM OrdreVarer WHERE IsNull(" & fld & ") AND Ordre = " & rdr
        Set oGetDBDate = oConn.Execute(sSQL)
        If NOT oGetDBDate.EOF then
            GetDBDate = ""
        Else
            sSQL =     "SELECT TOP 1 " & fld & " FROM OrdreVarer WHERE Ordre = " & rdr & " ORDER BY " & fld & " DESC"
            Set oGetDBDate2 = oConn.Execute(sSQL)
            If NOT oGetDBDate2.EOF then
                GetDBDate = oGetDBDate2(fld)
            End if
            oGetDBDate2.Close
            Set oGetDBDate2 = Nothing
        End if
        oGetDBDate.Close
        Set oGetDBDate = Nothing
    End if
End Function

Lidt nærmere forklaring til funktionen kunne være at den skal trække den nyeste dato ud fra varelinerne på den givne ordre. Men hvis feltet i en af varelinierne er tom skal der ikke udskrives noget.
Avatar billede cool_casper Nybegynder
16. juni 2004 - 11:04 #1
lukketid
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester