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

Bekijken: 63300|Antwoord: 7

[.NET Core] ADO.NET Maak een SqlConnection-verbindingspool aan via de ObjectPool

[Link kopiëren]
Geplaatst op 19-4-2020 18:51:31 | | | |
ObjectPool is een nieuwe functie van Microsoft, Microsoft helpt ons bij het onderhouden van enkele objecten die hergebruikt kunnen worden.

Kort gezegd, net als bij gedeelde fietsen: wanneer je hem gebruikt, scant je de code om hem te ontgrendelen, het voertuig betekent dat het bezet is; als je hem gebruikt, als je de auto vergrendelt, laat het voertuig de inzittenden vrij. Deze bezettingen en vrijlatingen worden allemaal door het platform voor ons onderhouden.

Sommige objecten zijn niet thread-veilig, maar elke keer dat we het object instantiëren, moeten we wat resources verbruiken.

Gedetailleerde uitleg van Object Pool in .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Bron: Architect_Programmer)
Eerst maken we een nieuwe SqlConnectionPooledObjectPolicy-klasse aan die de IPooledObjectPolicy-interface erft <T>en de twee methoden moet implementeren.

Hoe het object te instantiëren in de Create-methode,Return geeft aan of het object nog steeds hergebruikt kan worden, en wanneer false wordt teruggegeven, wordt het object uit de objectpool verwijderd.

De broncode van de test is als volgt:

De testresultaten zijn als volgt:



Je kunt zien dat de verbindingspool iets trager is bij de eerste 10 queries, en daarna sneller dan elke instantie van SqlConnection.

Bijgevoegd is de broncode

Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieftAntwoord






Vorig:C#-programma's draaien tijdrovende testklassen
Volgend:MSSQL Trusted_Connection configuratie
Geplaatst op 2020-4-19 21:58:46 |
Dit is iets nieuws
Geplaatst op 30-4-2020 13:05:18 |
Kom kijken, ondersteun, bank
 Huisbaas| Geplaatst op 22-3-2021 15:31:43 |
DefaultObjectPoolProvider-broncode
MaximumRetained Standaardomgeving.ProcessorCount * 2;





 Huisbaas| Geplaatst op 22-3-2021 15:34:51 |
Het kan ook direct worden geschreven


 Huisbaas| Geplaatst op 23-3-2021 09:50:57 |
Testcode:

maximumRetained is ingesteld op 5, en de test wordt slechts één keer geïnstantieerd wanneer deze telkens wordt teruggegeven wanneer hij wordt gebruikt, zoals weergegeven in de onderstaande figuur:



In het geval dat de Test niet terugkeert, wordt de Test 10 keer geïnstantieerd, hoewel deze de maximumRetained instelling van 5 overschrijdt en geen uitzondering zal geven; het kan zijn dat na voltooiing van het gebruik deze langzaam wordt gerecycled, en dan worden er slechts 5 instanties behouden:


 Huisbaas| Geplaatst op 24-3-2021 18:23:44 |
SQL Server Connection Pool (ADO.NET)

Telkens wanneer een gebruiker Open aanroept op een verbinding, zoekt het poolproces naar de beschikbare verbindingen in de pool. Als er een poolverbinding beschikbaar is, wordt deze teruggegeven aan de beller in plaats van een nieuwe verbinding te openen. Wanneer de applicatie Close aanroept op die verbinding, geeft het poolproces de verbinding terug naar de actieve verbindingspoolset in plaats van de verbinding te sluiten.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Geplaatst op 2021-8-17 10:13:07 |
Leer leren
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