Avatar billede rsd Nybegynder
09. marts 2004 - 16:21 Der 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.
Avatar billede websam Nybegynder
09. marts 2004 - 16:27 #1
Hvordan ser dine Sql'er ud ? For de burde alt andet lige være hurtigere på en Sql server !

/Websam
Avatar billede rsd Nybegynder
09. marts 2004 - 16:45 #2
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
Avatar billede websam Nybegynder
09. marts 2004 - 16:56 #3
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
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