Où se produit le délai d'expiration? Est-ce qu'il y a des lignes quand ASP se connecte/exécute sql? Si oui, votre problème est soit avec la connexion au serveur db ou à la base de données elle-même. Chargez SQL profiler dans MSSQL pour voir combien de temps les requêtes prennent. Peut-être est-ce dû à des verrous dans la base de données.
Utilisez-vous des transactions? Si c'est le cas, assurez-vous qu'ils ne verrouillent pas votre base de données pendant longtemps. Assurez-vous que vous utilisez des transactions dans ADO et non sur la page ASP entière. Vous pouvez également ignorer le verrouillage dans les sélections SQL en utilisant l'indicateur WITH (NOLOCK) sur les tables.
Assurez-vous que votre base de données est optimisée avec des index.
Assurez-vous également que vous êtes connecté à la base de données pour le temps le plus court possible (exemple: code qui ne fonctionne pas): conn.open; set rs = conn.execute(); rs.close; conn.close. Donc, stockez les jeux d'enregistrements dans une variable au lieu de boucler tout en maintenant la connexion à la base de données ouverte. Un bon moyen est d'utiliser la fonction GetRows() dans ADO.
Toujours fermer et définir explicitement les objets ADO à rien. Cela peut entraîner la connexion à la base de données pour rester ouverte.
Activer la mise en pool des connexions.
constantes de charge d'ADO dans global.asa si vous les utilisez
Ne pas stocker des objets dans des étendues de session ou d'application.
Mise à jour vers les dernières versions de ADO, MDac, service packs SQL Server, etc.
Êtes-vous sûr que le serveur peut gérer la charge? Peut-être mettre à jour? Est-ce sur un hébergement partagé? Peut-être que votre application n'est pas le problème.
Il est assez simple de mesurer une performance de script en la programmant de la ligne 1 à la dernière ligne. De cette façon, vous pouvez identifier les pages à exécution lente.