Wo tritt die Zeitüberschreitung auf? Tritt sie bei Zeilen auf, wenn ASP eine Verbindung herstellt/eine SQL ausführt? Wenn ja, liegt das Problem entweder bei der Verbindung zum Datenbankserver oder bei der Datenbank selbst. Laden Sie den SQL Profiler in MSSQL, um zu sehen, wie lange die Abfragen dauern. Vielleicht liegt es an den Sperren in der Datenbank.
Verwenden Sie Transaktionen? Wenn ja, stellen Sie sicher, dass sie Ihre Datenbank nicht für lange Zeit sperren. Stellen Sie sicher, dass Sie Transaktionen in ADO und nicht auf der gesamten ASP-Seite verwenden. Sie können auch Sperren in SQL Selects ignorieren, indem Sie den WITH (NOLOCK)-Hinweis für Tabellen verwenden.
Stellen Sie sicher, dass Ihre Datenbank mit Indizes optimiert ist.
Stellen Sie außerdem sicher, dass Sie so kurz wie möglich mit der Datenbank verbunden sind, z.B. (Beispiel, kein funktionierender Code): conn.open; set rs = conn.execute(); rs.close; conn.close. Speichern Sie also Datensätze in einer Variablen, anstatt eine Schleife zu durchlaufen, während Sie die Verbindung zur DB offen halten. Eine gute Möglichkeit ist die Verwendung der Funktion GetRows() in ADO.
Schließen Sie ADO-Objekte immer explizit und setzen Sie sie auf Null. Dies kann dazu führen, dass die Verbindung zur DB offen bleibt.
Aktivieren Sie das Pooling von Verbindungen.
Laden Sie ADO-Konstanten in global.asa, wenn Sie sie verwenden
Speichern Sie keine Objekte in Sitzungs- oder Anwendungsbereichen.
Aktualisierung auf die neuesten Versionen von ADO, MDac, SQL Server Service Packs usw.
Sind Sie sicher, dass der Server die Last bewältigen kann? Vielleicht sollten Sie ihn aufrüsten? Ist es ein gemeinsam genutztes Hosting? Vielleicht ist Ihre Anwendung nicht das Problem.
Es ist recht einfach, die Leistung eines Skripts zu messen, indem man es von der ersten bis zur letzten Zeile zeitlich einordnet. Auf diese Weise können Sie langsam laufende Seiten identifizieren.