Ohjelmointi

Kuinka ADO.Net-yhteyden yhdistäminen toimii?

Yhteys tietokantaan on resursseja kuluttava toimenpide, joka käsittää yleensä muutaman vaiheen. Tietoliikennekanava sovelluksen ja tietokannan välille tulisi perustaa ennen kuin ensimmäinen kädenpuristus tietokantapalvelimen kanssa voi tapahtua. Tämä kanava voi olla joko pistorasia tai nimetty putki. Kun tämä yhteys on muodostettu ja ensimmäinen kädenpuristus palvelimen kanssa onnistuu, yhteyden metatiedot (yhteysmerkkijonotiedot tietokantaan yhdistämistä varten) jäsennetään ja tietokantapalvelin todentaa yhteyden tietokantaan.

ADO.Net on pitkään ollut yksi suosituimmista tiedonsiirtokehyksistä. Yhteyksien yhdistäminen on ADO.Net-palvelun ominaisuus, jonka avulla voit parantaa sovelluksesi tiedonsiirtotehoa.

Mikä on yhteyden yhdistäminen?

Yhteyksien yhdistäminen on strategia, jota käytetään minimoimaan yhteyksien avaamiseen ja sulkemiseen liittyvät kustannukset tietokantaan. Sen avulla voit käyttää yhteyksiä uudelleen eikä luoda uusia yhteyksiä tietokantaan, kun niitä pyydetään.

Yhteysallas sisältää kokoelman käyttämättömiä, avoimia ja uudelleenkäytettäviä yhteyksiä. Pooler hallinnoi yhteyspoolia ja ylläpitää joukko aktiivisia yhteyksiä kullekin annetulle yhteyden metatiedolle ja yhteyden määritystiedoille.

Huomaa, että samalla sovellusalueella voi olla useita yhteyspooleja. Yhteyspooli luodaan kutakin yksilöllistä yhteysmerkkijonoa kohti, jota käytetään yhteyden muodostamiseen tietokantaan eikä tietokantaan. Joten, kun muodostat ensimmäisen kerran yhteyden tietokantaan tietyllä yhteysmerkkijonolla, luodaan uusi yhteysallas. Kun muodostat yhteyden samaan tietokantaan samalla yhteysmerkkijonolla seuraavan kerran, uutta yhteyspoolia ei luoda, vaan olemassa olevaa yhteyspoolia käytetään uudelleen.

On huomattava, että kun käytät integroitua suojausta, jokaiselle asiakkaalle, joka käyttää asiakasjärjestelmää, luodaan yhteyspooli, toisin sanoen yhteydet yhdistetään Windows-identiteetin mukaan. Tältä osin MSDN toteaa: "Kun yhteys avataan ensimmäisen kerran, luodaan yhteyspooli tarkan sovitusalgoritmin perusteella, joka yhdistää poolin yhteyden yhteysmerkkijonoon. Kuhunkin yhteyspooliin liittyy erillinen yhteysmerkkijono. Kun uusi yhteys avataan, uusi yhteys luodaan, jos yhteysmerkkijono ei ole täsmällinen vastaavuus olemassa olevaan pooliin. "

Yhteyden yhdistämisen määrittäminen

Kuinka hallitset yhteyden yhdistämisen käyttäytymistä? No, voit hallita yhteyspooleja käyttämällä tiettyjä avainsanoja yhteysmerkkijonossasi. Tärkeimpiä ovat seuraavat:

  • ConnectionTimeout - tätä käytetään määrittämään odotusaika (sekunteina), kun uutta tietokantayhteyttä pyydetään. Oletusarvo on 15.
  • MinPoolSize - tämä edustaa vähimmäismäärää yhteyksiä poolissa.
  • MaxPoolSize - tämä edustaa enimmäismäärän yhteyksiä poolissa. Oletusarvo on 100.
  • Pooling - tämä valvoo, onko yhteyden pooling kytketty päälle tai pois päältä, ja sen arvo voi olla true of false. Kun tämä on tosi, pyydetty yhteys haetaan asianmukaisesta yhteyspoolista.

Seuraava koodinpätkä kuvaa, kuinka yhteysvarasto voidaan määrittää yhteysmerkkijonolla:

merkkijono connectionString = "Tietolähde = paikallinen isäntä; Alkuperäinen luettelo = Näyte; Integroitu suojaus = SSPI; Yhteyden aikakatkaisu = 30; Yhteyden käyttöikä = 0; Altaan vähimmäiskoko = 0; Altaan enimmäiskoko = 100; Pooling = tosi;";

käyttämällä (SqlConnection-yhteys = uusi SqlConnection (connectionString))

{

yhteys.Avaa ();

// Kirjoita koodi tähän CRUD-toimintojen suorittamiseksi näytetietokantaan

}

Voit seurata yhteyden yhdistämiskäyttäytymistä suorittamalla sp_who tai sp_who2 tallennetut menettelyt SQL Serverissä. Voit myös käyttää SQL Server Profiler -ohjelmaa tai hyödyntää Suorituskykylaskurit -toimintoa seurataksesi yhteyspoolien käyttäytymistä.

Yhteyden yhdistämisessä on muutamia mahdollisia ongelmia. Yksi tällainen asia on poolien pirstoutuminen. Kun työskentelet yhteyden pooloinnin kanssa, sinun tulee olla tietoinen poolien pirstoutumisesta ja varmistaa, että ryhdytään asianmukaisiin toimenpiteisiin (arkkitehtuurisi tulisi suunnitella vastaamaan poolien pirstoutumisen vähentämisstrategioita) poolin pirstoutumisen välttämiseksi. Huomaa, että poolien pirstoutuminen voi tapahtua, jos käytät integroitua suojausta tai vaikka sovelluksesi käyttää liian monta yhteyspoolia.

Varmistaaksesi, että yhteyspoolit toimivat tehokkaasti, sinun on varmistettava, että suljet tietokantayhteydet, kun niitä ei enää tarvita. Sinun ei pitäisi koskaan kutsua Sulje tai Hävitä-menetelmää Yhteys-esiintymälle Viimeistele-menetelmässä. Sulje myös tapahtuma-ilmentymät, ennen kuin liittyvät yhteysobjektit suljetaan tai hävitetään. Tässä on mukava lukea tästä aiheesta.

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