Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 63300|Répondre: 7

[.NET Core] ADO.NET Créer un pool de connexion SqlConnection via l’ObjectPool

[Copié le lien]
Publié le 19-04-2020 à 18:51:31 | | | |
ObjectPool est une nouvelle fonctionnalité de Microsoft, Microsoft nous aide à maintenir certains objets qui peuvent être réutilisés.

Pour faire simple, un peu comme les vélos partagés, quand vous l’utilisez, scannez le code pour le déverrouiller, le véhicule signifie qu’il est occupé, quand vous l’utilisez, lorsque vous verrouillez la voiture, le véhicule libère l’occupation. Ces occupations et relâchages sont tous gérés par la plateforme pour nous.

Certains objets ne sont pas sûrs pour les threads, mais à chaque fois que nous instancions l’objet, nous devons consommer certaines ressources.

Explication détaillée du pool d’objets dans .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Source : Architect_Programmer)
Tout d’abord, nous créons une nouvelle classe SqlConnectionPooledObjectPolicy qui hérite de l’interface IPooledObjectPolicy <T>et doit implémenter ses deux méthodes.

Comment instancier l’objet dans la méthode Create,Return indique si l’objet peut toujours être réutilisé, et lorsque le faux est retourné, l’objet sera supprimé du pool d’objets.

Le code source du test est le suivant :

Les résultats des tests sont les suivants :



On peut constater que le pool de connexions est un peu plus lent lors des 10 premières requêtes, et après cela, il est plus rapide que chaque instanciation de SqlConnection.

Le code source est joint

Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaîtRépondre






Précédent:Les programmes C# exécutent des classes de test longues
Prochain:Configuration Trusted_Connection MSSQL
Publié le 19-04-2020 à 21:58:46 |
C’est quelque chose de nouveau
Publié le 30-04-2020 à 13:05:18 |
Viens voir, soutiens, canapé
 Propriétaire| Publié le 2021-03-22 15:31:43 |
Code source DefaultObjectPoolProvider
Environnement par défaut MaximumRetained (Nombre de processeurs) * 2 ;





 Propriétaire| Publié le 2021-03-22 15:34:51 |
Il peut aussi être écrit directement


 Propriétaire| Publié le 23-03-2021 09:50:57 |
Code de test :

maximumRetained est fixé à 5, et le test n’est instancié qu’une seule fois lorsqu’il est retourné à chaque utilisation, comme montré dans la figure ci-dessous :



En cas de non-retour, le Test est instancié 10 fois, bien qu’il dépasse le réglage maximumRetained de 5, et qu’il ne lance pas d’exception, il se peut qu’une fois l’utilisation terminée, il le recycle lentement, et alors seulement 5 instances seront conservées :


 Propriétaire| Publié le 24-03-2021 à 18:23:44 |
SQL Server Connection Pool (ADO.NET)

Chaque fois qu’un utilisateur appelle Open sur une connexion, le processus du pool recherche les connexions disponibles dans le pool. Si une connexion pool est disponible, elle est renvoyée à l’appelant au lieu d’ouvrir une nouvelle connexion. Lorsque l’application appelle Close sur cette connexion, le processus du pool renvoie la connexion au pool de connexions actif au lieu de fermer la connexion.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Publié le 17-08-2021 à 10:13:07 |
Apprendre à apprendre
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com