Plus de 100 connexions à sql server 2008 en “sommeil” statut

J'ai un gros problème ici, bien à mon serveur.

J'ai une page ASP .net web (framework 4.x) en cours d'exécution sur mon serveur, toutes les transactions/select/update/insert sont faites avec ADO.NET.

Le problème est que, après avoir été en utilisant pendant un moment (un couple de mises à jour/sélectionne/inserts) parfois, j'ai eu plus de 100 connexions sur "dormir" au statut de vérifier les connexions à sql server avec cette requête:

SELECT 
 spid,
 a.status,
 hostname,  
 program_name,
 cmd,
 cpu,
  physical_io,
  blocked,
  b.name,
  loginame
FROM   
  master.dbo.sysprocesses  a INNER JOIN
  master.dbo.sysdatabases b  ON
    a.dbid = b.dbid where program_name like '%TMS%'
ORDER BY spid 

J'ai été vérifier mon code et en fermant chaque fois que je fais un lien, je vais tester la nouvelle classe, mais j'ai peur que le problème n'est pas résolu.

Il suppose que la connexion de regroupement, de garder les connexions à utiliser de nouveau, mais jusqu'à ce que je vois ne pas ré-utiliser toujours.

Toute idée en dehors de la vérification pour fermer toutes les connexions ouvertes après les utiliser?

RÉSOLU(maintenant j'ai une belle connexion sur le "sommeil", statut):

En plus de la réponse de David Stratton, je tiens à partager ce lien qui expliquent très bien comment le pool de connexion cela fonctionne: http://dinesql.blogspot.com/2010/07/sql-server-sleeping-status-and.html

Juste pour être court, vous devez fermer toutes les connexions sql (objets de connexion) afin que le pool de connexion peut ré-utiliser la connexion et de l'utilisation de la même connectinos chaîne, pour s'assurer que c'est fortement recommandé d'utiliser l'un des webConfig.

Être prudent avec dataReaders vous devez fermer sa connexion (c'est ce que me rendre fou pour tout).

Vous pouvez obtenir plus et apporter de meilleures réponses sur dba.stackexchange.com où le temps plein DBA hang out

OriginalL'auteur Allende | 2011-09-26