Programovanie

Ako funguje združovanie pripojení ADO.Net?

Pripojenie k databáze je operácia náročná na zdroje, ktorá zvyčajne pozostáva z niekoľkých krokov. Predtým, ako dôjde k počiatočnému spojeniu s databázovým serverom, by sa mal vytvoriť komunikačný kanál medzi aplikáciou a databázou. Tento kanál môže byť buď soket alebo pomenovaná rúra. Keď je toto pripojenie nadviazané a počiatočné nadviazanie spojenia so serverom je úspešné, sú metadáta pripojenia (informácie o pripojovacom reťazci na pripojenie k databáze) analyzované a pripojenie k databáze je autentifikované databázovým serverom.

ADO.Net je už dlho jedným z najpopulárnejších rámcov prístupu k údajom. Pooling connection je funkcia v ADO.Net, ktorá vám umožňuje zlepšiť výkon prístupu k dátam vo vašej aplikácii.

Čo je združovanie pripojení?

Združovanie pripojení je stratégia, ktorá sa používa na minimalizáciu nákladov spojených s otváraním a zatváraním pripojení k databáze. Umožňuje vám opätovné použitie pripojení, a nie vytváranie nových pripojení k databáze, kedykoľvek sa vyžaduje.

Fond pripojení obsahuje kolekciu nečinných, otvorených a opakovane použiteľných pripojení. Pooler spravuje fond pripojení a udržiava množinu aktívnych pripojení pre každé dané metadáta pripojenia, informácie o konfigurácii pripojenia.

Upozorňujeme, že v tej istej doméne aplikácie môže existovať viac fondov pripojenia. Spoločná oblasť pripojení sa vytvára pre jedinečný pripojovací reťazec, ktorý používate na pripojenie k databáze, a nie pre každú databázu. Takže pri prvom pripojení k databáze s konkrétnym pripojovacím reťazcom sa vytvorí nová oblasť pripojení. Keď sa nabudúce pripojíte k rovnakej databáze s rovnakým pripojovacím reťazcom, nevytvorí sa žiadna nová oblasť pripojení, ale znova sa použije existujúca oblasť pripojení.

Je potrebné poznamenať, že keď používate integrované zabezpečenie, vytvorila by sa oblasť pripojení pre každého používateľa, ktorý pristupuje do klientskeho systému, t. J. Pripojenia sa združujú podľa identity systému Windows. V tejto súvislosti sa na serveri MSDN uvádza: „Pri prvom otvorení pripojenia sa vytvorí fond pripojení na základe algoritmu presnej zhody, ktorý asociuje fond s pripojovacím reťazcom v pripojení. Každá oblasť pripojení je spojená s odlišným pripojovacím reťazcom. Ak sa pri otvorení nového pripojenia nebude reťazec pripojenia presne zhodovať s existujúcim fondom, vytvorí sa nový fond. “

Konfigurácia združovania pripojení

Ako kontrolujete správanie združovania pripojení? Skupiny pripojení môžete spravovať pomocou určitých kľúčových slov v reťazci pripojenia. Medzi dôležité patria:

  • ConnectionTimeout - slúži na určenie doby čakania (v sekundách), kedy sa požaduje nové pripojenie k databáze. Predvolená hodnota je 15.
  • MinPoolSize - predstavuje minimálny počet pripojení v bazéne.
  • MaxPoolSize - predstavuje maximálny počet pripojení v bazéne. Predvolená hodnota je 100.
  • Pooling - toto určuje, či je združovanie pripojení zapnuté alebo vypnuté a môže mať hodnotu true alebo false. Keď je nastavená hodnota true, požadované pripojenie sa získa z príslušnej oblasti pripojení.

Nasledujúci úryvok kódu ilustruje, ako je možné nakonfigurovať fond pripojení pomocou pripojovacieho reťazca:

string connectionString = "Zdroj údajov = localhost; Počiatočný katalóg = Vzorka; Integrované zabezpečenie = SSPI; Časový limit pripojenia = 30; Životnosť pripojenia = 0; Minimálna veľkosť fondu = 0; Maximálna veľkosť fondu = 100; Zdieľanie = true;";

pomocou (pripojenie SqlConnection = nový SqlConnection (connectionString))

{

pripojenie. Otvorené ();

// Sem napíšete kód, aby ste mohli vykonávať operácie CRUD na vzorovej databáze

}

Správanie združovania pripojení môžete monitorovať vykonaním uložených procedúr sp_who alebo sp_who2 na serveri SQL Server. Na sledovanie správania združovania pripojení môžete tiež použiť SQL Server Profiler alebo využiť výhody počítadiel výkonu.

Existuje niekoľko potenciálnych problémov so združovaním pripojení. Jedným z takýchto problémov je fragmentácia fondu. Pri práci so združovaním pripojení by ste si mali byť vedomí fragmentácie fondu a zabezpečiť, aby sa prijali náležité opatrenia (vaša architektúra by mala byť navrhnutá tak, aby riešila stratégie zmierňovania fragmentácie fondu), aby sa zabránilo fragmentácii fondu. Upozorňujeme, že k fragmentácii fondu môže dôjsť, ak používate integrované zabezpečenie alebo dokonca aj vtedy, keď vaša aplikácia používa príliš veľa fondov pripojenia.

Ak chcete zaistiť, aby združovanie pripojení fungovalo efektívne, mali by ste zabezpečiť, aby ste ukončili pripojenia k databáze, keď už nie sú potrebné. Nikdy by ste nemali volať metódu Close alebo Dispose na inštancii Connection v metóde Finalize. Mali by ste tiež zavrieť inštancie transakcie predtým, ako budú príslušné objekty pripojenia zatvorené alebo odstránené. Tu je pekné čítanie na túto tému.

$config[zx-auto] not found$config[zx-overlay] not found