Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 63300|Odpověď: 7

[.NET Core] ADO.NET Vytvořit SqlConnection connection pool prostřednictvím ObjectPool

[Kopírovat odkaz]
Zveřejněno 19. 4. 2020 18:51:31 | | | |
ObjectPool je nová funkce od Microsoftu, Microsoft nám pomáhá udržovat některé objekty, které lze znovu použít.

Jednoduše řečeno, podobně jako u sdílených kol, když ho použijete, naskenujte kód k odemčení, vozidlo znamená, že je obsazeno, když ho použijete, když ho zamknete, vozidlo uvolní obsazenost. Tyto okupace a propuštění jsou pro nás udržovány platformou.

Některé objekty nejsou bezpečné pro vlákna, ale pokaždé, když objekt instancujeme, musíme spotřebovat určité zdroje.

Podrobné vysvětlení objektového poolu v .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Zdroj: Architect_Programmer)
Nejprve vytvoříme novou třídu SqlConnectionPooledObjectPolicy, která dědí rozhraní IPooledObjectPolicy <T>a potřebuje implementovat jeho dvě metody.

Jak instancovat objekt v metodě Create,Return označuje, zda lze objekt stále znovu použít, a když je vráceno nepravdivé, objekt bude z objektového poolu smazán.

Zdrojový kód testu je následující:

Výsledky testu jsou následující:



Je vidět, že pool připojení je o něco pomalejší při prvních 10 dotazech a poté rychlejší než při každé inscenaci SqlConnection.

Přiložen je zdrojový kód

Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosímOdpověď






Předchozí:Programy v C# spouštějí časově náročné testovací třídy
Další:MSSQL Trusted_Connection konfigurace
Zveřejněno 19. 4. 2020 21:58:46 |
Tohle je něco nového
Zveřejněno 30. 4. 2020 13:05:18 |
Pojďte se podívat, podpora, pohovka
 Pronajímatel| Zveřejněno 22. 3. 2021 15:31:43 |
Zdrojový kód DefaultObjectPoolProvider
MaximumRetained výchozí prostředí.ProcessorCount * 2;





 Pronajímatel| Zveřejněno 22. 3. 2021 15:34:51 |
 Pronajímatel| Zveřejněno 23. 3. 2021 09:50:57 |
Testovací kód:

maximumRetained je nastaveno na 5 a test se při každém použití vrací pouze jednou, jak je znázorněno na obrázku níže:



V případě nenávratu je test instancován 10krát, i když překračuje maximální nastavení 5 a nevyhodí výjimku, může se stát, že po dokončení použití bude test pomalu recyklován a pak bude ponecháno pouze 5 instancí:


 Pronajímatel| Zveřejněno 24. 3. 2021 18:23:44 |
SQL Server Connection Pool (ADO.NET)

Kdykoli uživatel zavolá Open na spojení, proces poolu hledá dostupná spojení v poolu. Pokud je k dispozici spojení poolu, je vráceno volajícímu místo navázání nového spojení. Když aplikace zavolá Close na toto spojení, proces poolu vrací spojení do aktivní sady připojení místo uzavření spojení.

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

Zveřejněno 17. 8. 2021 10:13:07 |
Učte se učit
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com