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.
