Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19962|Răspunde: 0

[Sursă] Cum să folosești corect SqlConnection, este sigur thread-ul SqlConnection?

[Copiază linkul]
Postat pe 19.11.2016 08:46:14 | | |
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...




Precedent:javascrip{filter}t:diferența dintre history.go() și History.back().
Următor:C# Conectarea la baze de date SQL Șiruri comune de conexiune
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com