Skriptet

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 
 
%>