J'utilise SQL Server 2008 Enterprise + C# + ADO.Net + .Net 3.5. J'utilise le pool de connexions au côté client ADO.Net (le comportement par défaut de ADO.Net). J'utilise sp_who2 ou sys.dm_exec_connections pour trouver les numéros de connexions actifs (faites moi savoir si ma méthode pour trouver les numéros de connexion actifs est incorrecte). Si à chaque fois que je crée et ouvre un nouvel objet de connexion ADO.Net, j'aurai une instruction de fermeture correspondante pour fermer l'instance d'objet de connexion ADO.Net après avoir utilisé l'objet de connexion (pour exécuter la procédure de stockage), je suis Se demandant dans ce scénario, le numéro de connexion actif devrait toujours être 0 après que je ferme toute la connexion de mon application client ADO.Net, et si montrer le numéro de connexion actif> 0, il devrait être très bizarre?problème de fuite de connexion dans SQL Server
merci à l'avance, George
1. ClearAllPool signifie que lorsque nous appelons la méthode Close, la connexion physique du pool de connexions à SQL Server est récupérée? 2. Si oui, quel est l'avantage d'utiliser ClearAllPools avec Conneciton pool, maintenir la connexion ouverte est un principe de base de l'optimisation utilisant le pool de connexion? Si la connexion est fermée, aucun avantage de performance. Des commentaires? – George2
1. Oui, l'appel de Close ne renvoie pas la connexion au pool. 2. J'utilise ClearAllPools puis Close avec Sql Server Express. Je vais attacher et détacher des bases de données de mon programme. Pour copier un fichier de base de données, il doit être détaché. J'utilise ClearAllPools avec Close pour libérer la connexion afin que je puisse détacher et copier les fichiers MDF. Le pool de connexion fournira des performances que l'effacer si vous devez pour une raison quelconque. – Steve
Bonne réponse! J'ai marqué votre réponse comme répondue. – George2