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...
|