Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La connexion SQL attend 15 secondes malgré un délai de 3 secondes dans la chaîne de connexion

Il y a un délai d'attente avant que le matériel réseau ne signale le délai de connexion aux pilotes réseau, qui à leur tour notifient les programmes en attente d'E/S réseau. Vous pouvez vérifier les délais d'expiration de la couche de transport via le nom de serveur telnet 1433 (en supposant que votre serveur sql écoute sur le port 1433).

Mais 3 secondes sont bien trop courtes pour qu'un processus initialise les API réseau (en supposant que votre application Web se trouve dans son propre pool d'applications), envoie une demande et attende que le matériel expire. La mise à jour du BIOS/firmware/pilote ne réduira probablement pas autant le temps de réponse.

Il serait préférable d'effectuer la connexion de manière asynchrone. Je ne suggère pas d'utiliser EndInvoke pour mettre fin à l'appel asynchrone car les utilisateurs malchanceux peuvent encore devoir attendre 3 secondes complètes pour voir une réponse lorsque la base de données est en panne. Peut-être qu'un appel Ajax est préférable. Si de nombreux utilisateurs visitent constamment votre site Web, vous souhaiterez peut-être mettre en cache le résultat de la vérification de la connectivité et le mettre à jour de manière significative pour vos utilisateurs.