Linkul către articol este următorul:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Este SqlConnection sigur pentru thread-uri?
Se poate ști că folosirea unei Conexiuni pentru a executa o instrucțiune SQL într-un mediu multithreaded esteNu e sigurScop.
SqlConnection nu este sigur pentru thread-uri, deci multithreading-ul este cu siguranță o problemă. De fapt, .net oferă automat gestionarea pool-ului de conexiuni, atâta timp cât șirul de conexiune este același (trebuie să fie exact același), va fi în același pool, open și closed preiau de fapt o conexiune din pool și o pun înapoi în pool, ceea ce nu va cauza probleme de performanță. Prin urmare, după ce fiecare conexiune este deschisă, aceasta ar trebui închisă cât mai curând posibil după utilizare, astfel încât conexiunea să poată fi returnată în pool pentru ca alte programe să le folosească.
2: De ce oamenii folosesc în continuare metoda de scriere de mai sus pentru a crea conexiuni?
Cred că ar putea crede că crearea mai multor conexiuni consumă mult timp și că mai multe conexiuni consumă memorie, afectează performanța etc.
3: Fiecare nou SqlConnection consumă memorie și resurse, afectând performanța?
Asta e gândire oarbă, îngrijorare oarbă.
Pentru că"Crearea mai multor conexiuni" nu creează neapărat mai multe conexiuni noi la baze de dateConexiunea la baza de date este o resursă valoroasă, din punctul de vedere al MS SQL Server, această resursă valoroasă va fi optimizată intern, iar conexiunea va fi reutilizată.
Pool-ul de conexiuni este oferit de .net, există o proprietate Pooling în șirul de conexiune, implicit este adevărat, adică pool-ul de conexiuni este activat implicit, acest lucru nu are nicio legătură cu SQL Server, dacă scrii Pooling=false în șirul de conexiune, atunci nu există pool de conexiuni, acesta este complet . Optimizare .NET.
Explorarea consecințelor utilizării aceleiași conexiuni la baza de date în mai multe fire de discuție Link articol: http://www.th7.cn/Program/java/201503/415005.shtml
Rezumat: Într-un mediu multi-threaded, folosirea unei singure conexiuni poate cauza confuzie în tranzacții fără o gestionare sigură a thread-ului conexiunii.... Afectează utilizarea tranzacțiilor JDBC...
|