Till att börja med ska du ju inte skapa något recordset. Du hämtar ju inget data, eller hur?
Byt:
Set oRec = oConn.Execute(sSql)
Set oRec = Nothing
mot:
oConn.Execute sSQL,,128
Hur lång tid är för lång tid? Hur många poster ligger i tabellen?
6 svar · 315 visningar · startad av MickeA.com
Hej!
Jag har ett script som jobbar mot Access.
ansMont = FixSQL(Request.Form("Hiss_Ans_Montor"))
hissArea = FixSQL(Request.Form("Hiss_Area"))
sSql = "UPDATE tbl_hiss SET " &_
"Hiss_Ans_Montor = '" & ansMont & "' " &_
"WHERE Hiss_Area = '" & hissArea & "'"
Set oRec = oConn.Execute(sSql)
Set oRec = Nothing
Response.reDirect("?mP=print")
Ovanstående funkar bra i sig, men det tar för lång tid för det att slutföra.
Det är många poster jag ska ändra samtidigt, det kan vara allt från 50 upp till 200.
Så, jag undrar hur jag ska göra för att få det är gå snabbare, jag kanske har gjort på helt fel sätt?
Tack!
Till att börja med ska du ju inte skapa något recordset. Du hämtar ju inget data, eller hur?
Byt:
Set oRec = oConn.Execute(sSql)
Set oRec = Nothing
mot:
oConn.Execute sSQL,,128
Hur lång tid är för lång tid? Hur många poster ligger i tabellen?
Indexera kolumnen hiss_area.
@nders skrev:
Byt:
Set oRec = oConn.Execute(sSql) Set oRec = Nothingmot:
oConn.Execute sSQL,,128
Klart!
@nders skrev:
Hur lång tid är för lång tid?
Nu håller jag på att uppdatera 64 poster, det har gått 7 minuter och det är inte klart än, är inte det för lång tid?
@nders skrev:
Hur många poster ligger i tabellen?
Det är (har blivit med tiden) en ganska stor.
Det är 15 kolumner med >1400 rader, alltså ca. 21.000 poster och det är Access.
Har funderat på att byta dbms till MySQL, tycker du att det är läge?
LarsG skrev:
Indexera kolumnen hiss_area.
Aha ok, det kanske kan snabba på det lite.
Får göra det vid ett annat tillfälle, har inte tillgång till Access just nu.
Rader är samma sak som poster i access. Du har alltså 1400 poster.
Sju minuter är en indikation på att något är fel. Det är alldeles för lång tid nästan oberoende av system. Testa indexera men kör också en komprimering/reparering.
Angående byte till mySql så visst kan du göra det men det kommer inte bli någon större prestandaskillnad p.g.a. storleken på databasen. Access klarar 1400 poster och mycket mer därtill. Snarare ska bytet bero på antal besökare. Ämnet har diskuterats i ett antal access vs mysql-trådar.
Aha, ok.
Avvaktar med ett ev. byte då, men indexeringen känns nödvändig.
Det konstiga är att när jag uppdaterar sidan innan scriptet körts klart, så verkar det ändå som om allt uppdaterats, men då ska ju sidan laddas om per automatik.
Men jag nöjer mig med dom svar jag fått, tack!