Disposer de la connexion ou de Fermer la connexion
Dont l'une des deux méthodes suivantes a de meilleures performances ?
using( var DB_Connection_s = new DBConnection() )
{
//todo: interact with database connection
}
ou tout simplement :
DB_Connection_s.Close();
à la fin.
Ne la première la méthode de la mise en commun concept inutile? Parce que si je dispose de la connexion avec chaque utilisation, puis-je ouvrir une nouvelle connexion à chaque fois (et il n'y aura pas toutes les connexions dans le pool).
Disposer va fermer ainsi que le nettoyage de toutes autres ressources.
Je sais , je pose la question de cette performance sage de tuer la connexion à chaque fois et puis, quel est l'avantage de pooing?!
parce que je sais que quand je viens de fermer la connexion .il reste dans la piscine et utilisée si elle n'était pas active.
Vous pouvez corriger cette faute de frappe...
Le bon sens me dit que Dispose() serait de Fermer, Nettoyer & Gratuit plus de ressources, par rapport à Close() vous permettent de le plus rapidement ré-ouvrir?.. mais j'ai peut-être tort.
Je sais , je pose la question de cette performance sage de tuer la connexion à chaque fois et puis, quel est l'avantage de pooing?!
parce que je sais que quand je viens de fermer la connexion .il reste dans la piscine et utilisée si elle n'était pas active.
Vous pouvez corriger cette faute de frappe...
Le bon sens me dit que Dispose() serait de Fermer, Nettoyer & Gratuit plus de ressources, par rapport à Close() vous permettent de le plus rapidement ré-ouvrir?.. mais j'ai peut-être tort.
OriginalL'auteur Anyname Donotcare | 2012-07-12
Vous devez vous connecter pour publier un commentaire.
source = Connexion au Serveur SQL de mise en commun (ADO.NET)
Donc, supprimer les soucis de la performance de la perte causée par manquer de connexions regroupées.
Dans le code du point de vue de la différence doit être minime que le
using
déclaration doit toujours être utiliséCet article sur MSDN les débats de la différence entre ces deux méthodes. Lire la réponse de
BinaryCoder
OriginalL'auteur Steve
La
using
modèle est mieux, puisque l'appel dispose ferme la connexion de toute façon, mais en bonus, la connexion est fermée, même si quelque chose à l'intérieur de l'aide va mal. Par exemple, une exception ou juste un retour que les forces de l'exécution du programme pour sortir de l'aide de portée. Avec l'aide, vous n'avez pas besoin de fermer explicitement la connexion, ce qui rend le code plus lisible.Un autre modèle, la connexion doit être fermé dès que possible. Il n'y a aucun inconvénient à la fermeture/ouverture de la connexion trop souvent, parce que le pool de connexion de manière à optimiser la connexion de ré-utiliser pour vous.
oui, à la fois clôture et à l'élimination ne pas faire la différence: une connexion fermée est juste publiée à la piscine
et les éliminés de connexion est également publié à la piscine .suis-je le droit?
oui, vous avez raison, d'en disposer appelez simplement fermer et fermer vient de sortir de la piscine
OriginalL'auteur Felice Pollano
Utilisation D'Aliéner. En interne au sein de Disposer va fermer la connexion de sorte que vous n'avez pas besoin de s'inquiéter, cela peut être vérifié assez facilement avec Réflecteur ou similaire en cas de doute.
Que pour la performance, j'allais encore à l'Aide. Windows a divers caches activé (certainement dans ODBC) pour s'assurer que la réutilisation peut se produire pour les demandes répétées de la même connexion, et, par conséquent, vous ne devriez pas vraiment besoin de s'inquiéter à propos de la performance.
Désolé, mon mauvais, la mise à jour de ma réponse
OriginalL'auteur Ian
Sauf si vous allez appeler .Open() à nouveau très bientôt,
utiliser le
using(){}
bloc.si vous allez utiliser la même connexion quelque part d'autre bientôt,
appel
.close();
puis.open()
et ainsi de suite...gardez votre classe en œuvre
IDisposable
et de disposer de la connexion il y!c'est encore de prendre le temps de créer l'objet de Connexion
OriginalL'auteur Tomer W