2 votes

Comment puis-je savoir si la mise en commun des connexions et les instructions préparées fonctionnent ?

Je développe depuis presque un an une application web que j'avais commencée à l'université. Après avoir terminé, j'ai apporté quelques modifications au code de la base de données que j'avais écrit à l'université. J'utilisais un simple JDBC lorsque j'étais à l'université, sans utiliser le pooling de connexion et les instructions préparées. Au cours du dernier mois, j'ai réalisé le potentiel et la nécessité d'utiliser la mise en commun des connexions et les instructions préparées en raison de l'augmentation des données interrogées et utilisées.

J'ai mis en œuvre la mise en commun des connexions, mais je n'ai pas vraiment remarqué une augmentation des performances. S'il y avait une augmentation des performances, alors ma question serait résolue, mais comment puis-je vérifier que la mise en commun des connexions et les instructions préparées sont utilisées correctement ?

6voto

bwawok Points 5102

Je pense que la déclaration préparée est plus importante du point de vue de la sécurité que des performances. Si vous les utilisez de manière cool, vous devriez vraiment le faire. Tant que 100% de votre SQL est une instruction préparée, vous les utilisez "correctement"...

La mise en commun des connexions est quelque chose que vous ne remarquerez pas sous une charge légère. Avec 1, 2 ou 10 utilisateurs, vous ne verrez probablement aucune ou presque aucune différence. Vous devrez créer une sorte de test de charge pour simuler des centaines d'utilisateurs simultanés, puis comparer les performances avec et sans la mise en commun.

1voto

Robert Calhoun Points 1395

Vous ne constaterez pas d'amélioration des performances si l'ouverture et la fermeture des connexions ne limitent pas le débit. Essayez de consulter les outils de profilage de votre base de données pour obtenir une liste des connexions ouvertes. Si vous voyez des connexions ouvertes depuis votre processus alors que vous les avez ostensiblement fermées, la couche d'interface effectue une mise en commun des connexions.

Voir aussi cette autre question sur le SO sur l'abandon forcé d'une connexion mutualisée.

(Mise en garde : j'utilise ADO et ADO.NET ; JDBC peut se comporter différemment).

1voto

Vous demandez des statistiques au pool de connexion pour voir s'il fonctionne. Si la bibliothèque du pool de connexion ne fournit pas de statistiques, trouvez une meilleure bibliothèque.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X