Question

Lorsque vous développez une application (web, win, ou autre) qui fait beaucoup d’accès aux données, il est préférable de garder votre objet d’accès aux données ouvert pendant toute la durée de la requête (c’est-à-dire faire beaucoup de choses en ligne, puis le fermer quand vous finissez), ou continuez d’ouvrir et de fermer de nouveaux?

protected aDataContext dc = new aDataContext();

vs

private aObject GetInfo(...) {...}

Je pense que le premier serait meilleur pour la performance; mais cela semble être une mauvaise pratique.

Était-ce utile?

La solution

Généralement, vous devez ouvrir une nouvelle connexion pour chaque unité de travail, l’utiliser puis la fermer dès que possible. En interne, .NET (ou ADO ou ODBC ou autre) regroupera les connexions en pool pour vous, tant que la chaîne de connexion est la même, elle est donc très efficace. Il y a d'autres problèmes à prendre en compte, en particulier les transactions, mais en général, il est préférable de suivre ce modèle d'ouverture-fermeture-fermeture et de laisser .NET gérer le pool de connexions.

Autres conseils

Mieux vaut utiliser un pool de connexions. gardez un nombre limité de connexions ouvertes autant que vous le pouvez. Ouvrir une connexion coûte cher, mais avoir un million de connexions ouvertes peut tuer votre serveur. vous devez analyser votre scénario pour obtenir les meilleurs résultats ....

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top