Le lien vers l’article est le suivant :
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1 : SqlConnection est-il sûr pour les threads ?
On peut savoir que l’utilisation d’une Connection pour exécuter une instruction SQL dans un environnement multithread estPas sûrCible.
SQL Connection n’est pas sûr pour les threads, donc le multithreading est forcément un problème. En fait, .net assure automatiquement la gestion du pool de connexions, tant que la chaîne de connexion est la même (doit être exactement la même), il sera dans le même pool, ouvert et fermé prennent en fait une connexion du pool et la remettent dans le pool, ce qui ne causera pas de problèmes de performance. Par conséquent, après l’ouverture de chaque connexion, elle doit être fermée dès que possible après utilisation, afin que la connexion puisse être renvoyée au pool pour que d’autres programmes puissent l’utiliser.
2 : Pourquoi les gens utilisent-ils encore la méthode d’écriture ci-dessus pour créer des connexions ?
Je pense qu’ils pensent que créer plusieurs connexions prend du temps, et que plusieurs connexions consomment de la mémoire, affectent les performances, etc.
3 : Chaque nouvelle SqlConnection consomme-t-elle de la mémoire et des ressources, ce qui affecte les performances ?
C’est une pensée aveugle, une inquiétude aveugle.
Parce que« Créer plusieurs connexions » ne crée pas nécessairement plusieurs nouvelles connexions à la base de donnéesLa connexion à la base de données est une ressource précieuse ; pour MS SQL Server, cette ressource précieuse sera optimisée en interne et la connexion réutilisée.
Le pool de connexion est fourni par .net, il existe une propriété de Pooling dans la chaîne de connexion, la norme est vraie, c’est-à-dire que le pool de connexion est activé par défaut, cela n’a rien à voir avec SQL Server, si vous écrivez Pooling=false dans la chaîne de connexion, alors il n’y a pas de pool de connexion, c’est complètement . Optimisation .NET.
Explorer les conséquences d’utiliser la même connexion à la base de données dans plusieurs threads Lien de l’article : http://www.th7.cn/Program/java/201503/415005.shtml
Résumé : Dans un environnement multithread, utiliser une seule connexion peut entraîner une confusion de transaction sans gestion sécurisée des threads de la connexion.... Affecte l’utilisation des transactions JDBC...
|