1

Je travaille sur le projet de code de framework d'entité asp.net MVC + WebAPI, en utilisant des méthodes asynchrones. Actuellement, je crée une connexion à la base de données par appel. La création de la connexion à la base de données prend un peu de temps, , de sorte que chaque requête au serveur nécessite peu de temps pour créer une connexion à la base de données, et pour des milliers de demandes, cela prend plus de temps. Maintenant, ma question est si j'utilise une instance de connexion de base de données dans l'application entière alors que se passera-t-il?Que se passe-t-il si j'utilise une instance de connexion à une base de données dans l'ensemble de l'application dans un système de simultanéité?

+0

Vous devriez également envisager une politique de mise en cache. Il se peut que vous n'ayez pas besoin de récupérer des données de la base de données à chaque fois ou que vous ayez les mécanismes en place pour actualiser le cache lorsqu'un élément devient obsolète. –

Répondre

1

SQL Server et Oracle disposent de pools de connexions, de sorte que les ressources réelles derrière la connexion à la base de données vont généralement être réutilisées même si vous créez une classe de connexion pour chaque appel.

Si vous avez une connexion singleton, vous ne pourrez pas avoir de requêtes de base de données simultanées. Vous aurez un goulot d'étranglement à un seul thread dans la base de données.

Le pool de connexions augmentera et diminuera en fonction de la quantité d'accès simultané dont votre application dispose réellement.