09. marts 2004 - 16:21Der er
2 kommentarer og 1 løsning
Recordset mod SQL-server
Jeg har en række ASP script som tidligere har kørt mod en Access database, men som nu er flyttet over på en SQl server.
Problemet er at jeg har brugt en række recordset hvor jeg opdaterer data uden problemer, når jeg gør det mod SQl serveren tager det vanvittig lang tid, er der nogen fornuftig forklaring på det.
Den ser således ud. Der er kun et par hundrede records, men det tager ca 20 sekunder at løbe igennem.
SQL = "SELECT * FROM Temp_Budget where ID=" & MyID Set MySet = Server.CreateObject("ADODB.Recordset") MySet.Open SQL, conntemp, 3, 3
Do until myset.eof
if Myset("BeregningsID") = 8 then
SQL = "Select * from Temp_Budget_Årsforbrug where MålerID = " & Myset("MålerID") & " and ID = " & MyID Set Naturgas = conntemp.execute(sql)
Aarspris = NaturGas("Ialt") Naturgas.close if AarsPris < 20000 then Myset("V1Ialt") = Myset("Pris2") end if if AarsPris >= 20000 and AarsPris < 75000 then Myset("V1Ialt") = ((20000*Myset("Pris2")) + ((AarsPris-20000)*Myset("Pris3"))) / AarsPris end if if AarsPris >= 75000 and AarsPris < 150000 then Myset("V1Ialt") = ((20000*Myset("Pris2")) + (55000*Myset("Pris3")) + ((AarsPris-75000)*Myset("Pris4"))) / AarsPris end if if AarsPris >= 150000 then Myset("V1Ialt") = ((20000*Myset("Pris2")) + (55000*Myset("Pris3")) + (75000*Myset("Pris4")) + ((AarsPris-150000)*Myset("Pris5"))) / AarsPris end if end if myset("V_Ialt") = Myset("B1") * myset("V1Ialt") if myset("Måned") = 1 then myset("F_Ialt") = Myset("F1Ialt") if Myset("ArealIalt") > 0 and myset("effekt_areal") > 0 then myset("F_Ialt") = myset("F_Ialt") + (Myset("ArealIalt")*myset("effekt_areal")) end if end if if len(myset("Tæller2Enh")) > 0 then myset("V_Ialt") = myset("V_Ialt") + (Myset("B2") * myset("V2Ialt")) if myset("Måned") = 1 then myset("F_Ialt") = myset("F_Ialt") + Myset("F2Ialt") end if end if if len(myset("Tæller3Enh")) > 0 then myset("V_Ialt") = myset("V_Ialt") + (Myset("B3") * myset("V3Ialt")) if myset("Måned") = 1 then myset("F_Ialt") = myset("F_Ialt") + Myset("F2Ialt") end if end if Myset("F" & Myset("Måned")) = myset("V_Ialt") myset.update myset.movenext loop MySet.close
Du bruger jo en del kræft til bereninger i din kode hvad er forskellen på de 2 maskiner med sql server kontra den maskine du har din access db på eller det den samme maskine ? Men hvorfor den er langsommere end på access fatter jeg ikke helt
/Websam
Synes godt om
Ny brugerNybegynder
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.