Programiranje

Kako deluje združevanje povezav ADO.Net?

Povezava z bazo podatkov je zahtevna operacija, ki običajno vključuje nekaj korakov. Pred začetkom rokovanja s strežnikom baze podatkov je treba vzpostaviti komunikacijski kanal med aplikacijo in bazo podatkov. Ta kanal je lahko vtičnica ali imenovana cev. Ko je ta povezava vzpostavljena in začetno rokovanje s strežnikom uspe, se metapodatki povezave (informacije o nizu povezave za povezavo z bazo podatkov) razčlenijo, strežnik baze podatkov pa preveri povezavo do baze podatkov.

ADO.Net je že dolgo eden najbolj priljubljenih okvirov za dostop do podatkov. Združevanje povezav je funkcija v ADO.Net, ki vam omogoča izboljšanje učinkovitosti dostopa do podatkov v vaši aplikaciji.

Kaj je združevanje povezav?

Združevanje povezav je strategija, ki se uporablja za zmanjšanje stroškov, povezanih z odpiranjem in zapiranjem povezav do baze podatkov. Omogoča vam ponovno uporabo povezav, ne pa ustvarjanje novih povezav do baze podatkov, ko in ko so zahtevane.

Področje povezav vsebuje zbirko nedejavnih, odprtih povezav za večkratno uporabo. Združevalec upravlja področje povezav in vzdržuje nabor aktivnih povezav za posamezne metapodatke povezave, informacije o konfiguraciji povezave.

Upoštevajte, da lahko v isti domeni aplikacije obstaja več združenj povezav. Področje povezav se ustvari za edinstven niz povezave, ki ga uporabljate za povezavo z bazo podatkov, in ne za bazo podatkov. Torej, ko se prvič povežete z bazo podatkov z določenim nizom povezave, se ustvari novo področje povezav. Ko se naslednjič povežete z isto bazo podatkov z istim nizom povezave, se ne ustvari novo področje povezav, temveč se obstoječe področje povezav ponovno uporabi.

Upoštevati je treba, da bi se pri uporabi integrirane varnosti ustvarilo področje povezav za vsakega uporabnika, ki dostopa do odjemalskega sistema, tj. Povezave se združijo v identiteto sistema Windows. V zvezi s tem MSDN navaja: "Ko je povezava prvič odprta, se na podlagi natančnega ujemajočega se algoritma ustvari področje povezav, ki poveže področje z nizom povezave v povezavi. Vsako področje povezav je povezano z ločenim nizom povezave. Ko se nova povezava odpre, če se niz povezave ne ujema z obstoječim bazenom, se ustvari nov bazen. "

Konfiguriranje združevanja povezav

Kako nadzorujete vedenje združevanja povezav? No, povezave lahko upravljate z določenimi ključnimi besedami v nizu povezave. Med pomembne spadajo naslednje:

  • ConnectionTimeout - uporablja se za določitev čakalnega obdobja (v sekundah), ko se zahteva nova povezava z bazo podatkov. Privzeta vrednost je 15.
  • MinPoolSize - to predstavlja najmanjše število povezav v področju.
  • MaxPoolSize - to predstavlja največje število povezav v področju. Privzeta vrednost je 100.
  • Združevanje - to nadzoruje, ali je združevanje povezav vklopljeno ali izklopljeno in ima lahko vrednost true kot false. Ko je to nastavljeno na true, se zahtevana povezava pridobi iz ustreznega področja povezav.

Naslednji delček kode prikazuje, kako je mogoče konfigurirati področje povezav z uporabo niza povezave:

string connectionString = "Vir podatkov = localhost; Začetni katalog = Vzorec; Integrirana zaščita = SSPI; Časovna omejitev povezave = 30; Življenjska doba povezave = 0; Najmanjša velikost bazena = 0; Največja velikost bazena = 100; Združevanje = res;";

z uporabo (SqlConnection connection = new SqlConnection (connectionString))

{

povezava.Open ();

// Tukaj napišite kodo za izvajanje CRUD operacij v zbirki podatkov Sample

}

Obnašanje združevanja povezav lahko spremljate tako, da v strežniku SQL Server izvedete shranjene procedure sp_who ali sp_who2. Uporabite lahko tudi SQL Server Profiler ali izkoristite števce zmogljivosti za spremljanje vedenja združevanja povezav.

Obstaja nekaj potencialnih težav z združevanjem povezav. Eno takih vprašanj je razdrobljenost bazena. Pri delu z združevanjem povezav se morate zavedati razdrobljenosti področja in zagotoviti, da se sprejmejo ustrezni ukrepi (vaša arhitektura mora biti zasnovana tako, da obravnava strategije ublažitve razdrobljenosti področja), da se prepreči razdrobljenost področja. Upoštevajte, da lahko pride do fragmentacije področja, če uporabljate integrirano varnost ali celo, če vaša aplikacija uporablja preveč povezav.

Če želite zagotoviti, da združevanje povezav deluje učinkovito, morate zapreti povezave baze podatkov, ko niso več potrebne. Nikoli ne bi smeli klicati metode Close ali Dispose v primerku Connection v metodi Finalize. Prav tako morate zapreti primerke transakcij, preden se povezani predmeti povezave zaprejo ali odstranijo. Tukaj je lepo branje o tej temi.

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