Supportnet / Forum / Skripte(PHP,ASP,Perl...)
ASP Abfrage extrem langsam geworden
Frage
Hi Leute,
ich habe hier ein Script das bisher immer prima lief. Plötzlich dauern die Anfragen ziemlich lang(bis zu 60 sec), obwohl die Accessdatenbank gerademal 2MB hat.
Vielleicht hat jemand ne Idee.
hier der ASP-Code
Danke im vorraus.....
<html>
<head>
</head>
<body style="padding-left: 35; padding-right: 35">
<p><img border="0" src="../bilder/ueberschrift_telefonbuch.gif" width="400" height="100"></p>
<%
'Datenbank öffnen
strConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ="
strConnection = strConnection & Server.MapPath("mdb/db2_2000.mdb")
strConnection = strConnection & ";DriverId=25;FIL=MS Access;MaxBufferSize=4096;PageTimeout=10;"
Set db = Server.CreateObject("ADODB.Connection")
db.Open strConnection
SQL = "SELECT Amt.Amt, Telefonliste.Name, Telefonliste.Vorname, Telefonliste.Standort, Telefonliste.Telefon, Telefonliste.Zimmer, Amt.Amtsnummer FROM Amt INNER JOIN Telefonliste ON Amt.AmtID = Telefonliste.AmtID WHERE Telefonliste.Name like '"&Request.QueryString("suche")&"%'or Telefonliste.Vorname like '"&Request.QueryString("suche")&"%'or Telefonliste.Telefon like '"&Request.QueryString("suche")&"%'or Amt.Amt like '"&Request.QueryString("suche")&"%'or Telefonliste.Zimmer like '"&Request.QueryString("suche")&"%'or Telefonliste.standort like '"&Request.QueryString("suche")&"%'or Amt.Amtsnummer like '"&Request.QueryString("suche")&"%' ORDER by "&Request.QueryString("b")
set rs = db.Execute(sql)
%>
<p align="left"><font face="Arial"><a href="telefonbuch.html"><b>neue Suche<br>
</b></a> </font></p>
<div align="left">
<table border="1" cellspacing="1" width="90%">
<tr>
<td width="163" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Nachname</b></font></td>
<td width="123" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Vorname</b></font></td>
<td width="212" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Fachamt</b></font></td>
<td width="91" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Dienstort</b></font></td>
<td width="99" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Zimmer</b></font></td>
<td width="89" height="25" align="left" bgcolor="#C0C0C0" valign="top"><font face="Arial" size="3"><b>Tel.</b></font></td>
</tr>
<%
If Not rs.eof Then
do while Not rs.eof
%>
<tr>
<td width="163" height="25" align="left" valign="top"><font face="Arial"><%response.Write rs.Fields("Name")%></font></td>
<td width="123" height="25" align="left" valign="top"><font face="Arial"><%response.Write rs.Fields("Vorname")%></font></td>
<td width="212" height="25" align="left" valign="top"><font face="Arial"><p align="left"><%response.Write rs.Fields("Amt")%></font></td> <center>
<td width="91" height="25" align="left" valign="top"><font face="Arial"><%response.Write rs.Fields("Standort")%></font></td>
<td width="99" height="25" align="left" valign="top"><font face="Arial"><%response.Write rs.Fields("Zimmer")%></font></td>
<td width="89" height="25" align="left" valign="top"><font face="Arial"><%response.Write rs.Fields("Telefon")%></font></td>
<%
rs.MoveNext
loop
else
Response.Write "<p>Es wurde leider keine Übereinstimmung für den Suchbegriff - <font color=#FF0000>"&Request.QueryString("suche")&"</font> - gefunden!</p> "
End If
rs.Close
db.Close
%>
</table>
</center>
</div>
<p> </p>
</body>
Antwort 1 von Cloud_X
Wenn es bisher gut gelaufen ist, dann liegt es nicht am code. Zudem bei Deinem auch so alles i.O. ist!
Evtl. kannst Du es beim schliessen der Verbindungen usw. noch folgendes einfügen:
An der Access DB wird es auch nicht liegen...nicht bei der größe. Du kannst Sie aber mal vorsichsthalber komprimieren/reparieren.
Wird die Sache im Intranet bereitgestellt? Wenn ja dann resette doch mal den IIS, nur so eine Idee...
Evtl. kannst Du es beim schliessen der Verbindungen usw. noch folgendes einfügen:
<%
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
%>An der Access DB wird es auch nicht liegen...nicht bei der größe. Du kannst Sie aber mal vorsichsthalber komprimieren/reparieren.
Wird die Sache im Intranet bereitgestellt? Wenn ja dann resette doch mal den IIS, nur so eine Idee...

