2009-10-29 14 views
1

J'utilise WCF, SQL Server et ADO.NET. Je regarde deux options de mise en œuvre pour la couche d'accès aux données.Est-ce que quelqu'un a des métriques de performance du regroupement de connexions ADO.NET par rapport à la méthode create-and-destroy?

  1. L'Enterprise Library qui utilise le regroupement de connexions
  2. Une solution personnalisée qui n'utilise pas la mise en commun de connexion. Chaque fois que l'on accède à la base de données, une connexion est créée, utilisée puis détruite.

Option 2 ressemble à ceci:

using (var connection = new SqlConnection(...)){...} 

Quelle est la différence de performance entre ces deux? Quand est-il logique de regrouper les connexions?

Répondre

5

L'option 2 aura également un regroupement de connexions sauf si vous l'éteignez explicitement dans la chaîne de connexion. La mise en commun est fournie au niveau du fournisseur et le marquage d'une connexion "fermée" indique simplement au pool de la réutiliser. Il devrait donc y avoir presque 0 différence de perf entre vos 2 options.

Toujours.

+0

Le regroupement de connexions peut être désactivé dans la chaîne de connexion. Dans ce cas, l'option 2 n'utilisera pas le regroupement et créera une nouvelle connexion socket pour chaque nouvelle connexion à la base de données. – sipwiz

+0

Bon point. Y at-il un cas où vous voudriez jamais faire cela? – DancesWithBamboo