Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19962|Antwoord: 0

[Bron] Hoe gebruik je SqlConnection correct, is de SqlConnection-thread veilig?

[Link kopiëren]
Geplaatst op 19-11-2016 08:46:14 | | |
De link naar het artikel is als volgt:

http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html

1: Is SqlConnection thread-veilig?

Het is bekend dat het gebruik van een Connection om een SQL-instructie uit te voeren in een multithreaded omgeving is.Niet veiligDoel.

SqlConnection is niet thread-veilig, dus multithreading zal ongetwijfeld een probleem zijn.
In feite zorgt .net automatisch voor het beheer van de connection pool; zolang de connection string hetzelfde is (moet exact hetzelfde zijn), zal deze in dezelfde pool zitten; open en close nemen eigenlijk een verbinding van de pool en plaatsen die verbinding terug in de pool, wat geen prestatieproblemen veroorzaakt. Daarom moet elke verbinding na het openen zo snel mogelijk na gebruik worden gesloten, zodat de verbinding kan worden teruggegeven aan de pool voor andere programma's om te gebruiken.



2: Waarom gebruiken mensen nog steeds bovenstaande schrijfmethode om Connections te creëren?

Ik denk dat ze misschien denken dat het maken van meerdere Connections tijdrovend is, en dat meerdere Connections geheugen innemen, de prestaties beïnvloeden, enzovoort.


3: Neemt elke nieuwe SqlConnection geheugen en middelen in beslag, wat de prestaties beïnvloedt?

Dit is blind denken, blind piekeren.

Omdat"Meerdere verbindingen aanmaken" betekent niet per se meerdere nieuwe databaseverbindingen aanmakenDatabaseverbinding is een waardevolle hulpbron voor MS SQL Server; deze waardevolle bron wordt intern geoptimaliseerd en de verbinding wordt hergebruikt.

De connection pool wordt geleverd door .net, er is een Pooling-eigenschap in de connection string, de standaard is waar, dat wil zeggen, de connection pool staat standaard aan, dit heeft niets te maken met SQL Server, als je Pooling=false in de connection string schrijft, dan is er geen connection pool, dit is volledig . .NET-optimalisatie.



De gevolgen van het gebruik van dezelfde databaseverbinding in meerdere threads verkennen
Artikellink: http://www.th7.cn/Program/java/201503/415005.shtml

Samenvatting: In een multithreaded omgeving kan het gebruik van één enkele verbinding transactieverwarring veroorzaken zonder thread-veilige afhandeling van de verbinding.... Beïnvloedt het gebruik van JDBC-transacties...




Vorig:javascrip{filter}t:het verschil tussen history.go() en History.back().
Volgend:C# Verbinding maken met SQL-databases Veelvoorkomende verbindingsstrings
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com