Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 63300|Odpoveď: 7

[.NET Core] ADO.NET Vytvoriť SqlConnection connection pool cez ObjectPool

[Kopírovať odkaz]
Zverejnené 19.4.2020 o 18:51:31 | | | |
ObjectPool je nová funkcia od Microsoftu, Microsoft nám pomáha udržiavať niektoré objekty, ktoré je možné opätovne použiť.

Jednoducho povedané, podobne ako pri zdieľaných bicykloch, keď ho použijete, naskenovate kód na odomknutie, vozidlo znamená, že je obsadené, keď ho použijete, keď ho zamknete, vozidlo uvoľní obsadenosť. Tieto okupácie a prepustenia sú pre nás všetky udržiavané platformou.

Niektoré objekty nie sú bezpečné pre vlákna, ale zakaždým, keď objekt inštancionujeme, musíme spotrebovať určité zdroje.

Podrobné vysvetlenie objektového poolu v .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Zdroj: Architect_Programmer)
Najprv vytvoríme novú triedu SqlConnectionPooledObjectPolicy, ktorá zdedí rozhranie IPooledObjectPolicy <T>a potrebuje implementovať jeho dve metódy.

Ako inštancovať objekt v metóde Create,Return označuje, či je objekt stále možné znovu použiť, a keď je vrátený nepravdivý výsledok, objekt bude vymazaný z objektového poolu.

Zdrojový kód testu je nasledovný:

Výsledky testov sú nasledovné:



Je vidieť, že connection pool je o niečo pomalší pri prvých 10 dotazoch a potom je rýchlejší ako pri každej inštancii SqlConnection.

Priložený je zdrojový kód

Turisti, ak chcete vidieť skrytý obsah tohto príspevku, prosím.Odpoveď






Predchádzajúci:Programy v C# spúšťajú časovo náročné testovacie triedy
Budúci:MSSQL Trusted_Connection konfigurácia
Zverejnené 19. 4. 2020 21:58:46 |
Toto je niečo nové
Zverejnené 30.4.2020 13:05:18 |
Poďte sa pozrieť, podpora, pohovka
 Prenajímateľ| Zverejnené 2021-3-22 15:31:43 |
Zdrojový kód DefaultObjectPoolProvider
MaximálneZachované predvolené prostredie.ProcesorPočet * 2;





 Prenajímateľ| Zverejnené 2021-3-22 15:34:51 |
 Prenajímateľ| Zverejnené 2021-3-23 09:50:57 |
Testovací kód:

maximumRetained je nastavené na 5 a test sa inštancuje iba raz, keď sa vráti pri každom použití, ako je znázornené na obrázku nižšie:



V prípade nenávratu sa test inštancionuje 10-krát, hoci prekračuje maximálne nastavenie Reretained 5 a nevyhodí výnimku, môže sa stať, že po dokončení použitia sa test pomaly recykluje a potom sa ponechá len 5 inštancií:


 Prenajímateľ| Zverejnené 2021-3-24 18:23:44 |
SQL Server Connection Pool (ADO.NET)

Kedykoľvek používateľ zavolá Open na spojení, proces poolu hľadá dostupné pripojenia v poole. Ak je k dispozícii spojenie na pool, vráti sa volajúcemu namiesto otvorenia nového spojenia. Keď aplikácia zavolá Close na toto spojenie, proces poolu vráti spojenie do aktívnej skupiny pripojení namiesto jeho uzavretia.

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

Zverejnené 17.8.2021 10:13:07 |
Naučte sa učiť
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com