Nedan visas skriptet som använts för att utföra testet. Testet loggar tidsfördröningar då en connection till en Access-databas skapas, öppnas, och stängas. Inget annat görs, inga recordset skapas, ingen fråga körs mot databasen. Databasen är i Access 2000-format, men samma test har tidigare visat att liknande resultat fås med 2003-format.
Den intressanta delen av skriptet är den som ligger mellan pageBegin och pageEnd. Där loggas tidpunkterna som i tabellen kallas T1, T2, T3 och T4, mätta i tusendels sekunder.
T1 visar när objektet "ADODB.Connection" just ska skapas och T2 när denna connection just ska öppnas.
Öppnandet av denna connection tar ofta lång tid, vilket framgår av tidpunkten T3 som visar när denna connection precis har öppnats och just ska stängas. Även stängningen tar ofta lång tid, vilket framgår av tidpunkten T4 som visar när allt är klart.
|
<%@ language=vbscript %> <% option explicit Server.ScriptTimeout = 180 Response.Buffer = true Response.ExpiresAbsolute = #2000-01-01# Response.AddHeader "pragma", "no-cache" Response.AddHeader "cache-control", "private, no-cache, must-revalidate" dim dbcon,connstr,loggedLines dim t1 loggedLines="" '********************************************************** pageBegin resetTimer t1 connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=h:\home\users\FA04-29-11-49_vjv3dvyd8abwxw4un7vx\common.se\db\dbtest.mdb" outd connstr outd elapsedTime(t1) & " - creating connection object" Set dbcon=Server.CreateObject("ADODB.Connection") outd elapsedTime(t1) & " - opening connection" dbcon.open connstr outd elapsedTime(t1) & " - closing connectcion" dbcon.Close set dbcon=nothing outd elapsedTime(t1) & " - finished" if elapsedTime(t1)>100 then saveLog(loggedLines) else saveLog("") end if pageEnd '********************************************************** sub saveLog(loggedLines) dim fs,f set fs=server.createobject("scripting.filesystemobject") set f=fs.opentextfile("h:\home\users\FA04-29-11-49_vjv3dvyd8abwxw4un7vx\common.se\db\dbtest-log2.txt",8,true) with f .write loggedLines .writeline "----------- " & now & " -----------" .close end with set f=nothing set fs=nothing if loggedLines<>"" then response.write "Times were logged<br>" end sub sub pageBegin%> <html> <head> <title>DB test</title> <meta content="60;URL=dbtest.asp" http-equiv="Refresh"> </head> <body> <span id="testID" style="display:none;">DBTest</span> <p> <% outd "Test of db connection " & now() %> </p> <p> <% end sub sub pageEnd%> </p> </body> </html><% end sub sub outd(txt) response.write txt & "<br>" loggedLines=loggedLines & txt & vbcrlf end sub %><SCRIPT Language = "JScript" RUNAT=Server> function milliSeconds() { var d = new Date(); return d.getMilliseconds(); } </SCRIPT><% function getMs getMs=milliSeconds() end function sub resetTimer(t) t=cdbl(now)*1000*24*3600+getms end sub function elapsedTime(t) dim presentTime resetTimer presentTime elapsedTime=round(presentTime-t) end function %> |