Artikkelin linkki on seuraava:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Onko SqlConnection säikeiden turvallinen?
On tiedossa, että yhteyden käyttäminen SQL-lauseen suorittamiseen monisäikeisessä ympäristössä onEi turvallistaKohde.
SqlConnection ei ole säiketurvallinen, joten monisäikeisyttely on väistämättä ongelma. Itse asiassa .net tarjoaa automaattisesti yhteyspoolin hallinnan, kunhan yhteysmerkkijono on sama (täytyy olla täsmälleen sama), se on samassa poolissa, avaaminen ja sulkeminen ottavat yhteyden poolista ja siirtävät sen takaisin pooliin, mikä ei aiheuta suorituskykyongelmia. Siksi jokaisen yhteyden avaamisen jälkeen se tulisi sulkea mahdollisimman pian, jotta yhteys voidaan palauttaa pooliin muiden ohjelmien käyttöön.
2: Miksi ihmiset yhä käyttävät yllä mainittua kirjoitusmenetelmää luodakseen yhteyksiä?
Luulen, että he saattavat ajatella, että useiden yhteyksien luominen vie aikaa, ja että useat yhteydet vievät muistia, vaikuttavat suorituskykyyn jne.
3: Viekö jokainen uusi SqlConnection muistia ja resursseja, mikä vaikuttaa suorituskykyyn?
Tämä on sokeaa ajattelua, sokeaa huolehtimista.
Koska"Useiden yhteyksien luominen" ei välttämättä luo useita uusia tietokantayhteyksiäTietokantayhteys on arvokas resurssi MS SQL Serverille, tämä arvokas resurssi optimoidaan sisäisesti ja yhteys käytetään uudelleen.
Yhteyspoolin tarjoaa .net, yhteysmerkkijonossa on Pooling-ominaisuus, oletusarvo on true, eli yhteyspooli on oletuksena päällä, tällä ei ole mitään tekemistä SQL-palvelimen kanssa, jos kirjoitat Pooling=false yhteysmerkkijonoon, ei ole yhteyspoolia, tämä on täysin . .NET-optimointi.
Seurausten tutkiminen, jos samaa tietokantayhteyttä käytetään useissa säikeissä Artikkelin linkki: http://www.th7.cn/Program/java/201503/415005.shtml
Yhteenveto: Monisäikeisessä ympäristössä yhden yhteyden käyttö voi aiheuttaa transaktioiden sekaannusta ilman säiketurvallista yhteyden käsittelyä.... Vaikuttaa JDBC-tapahtumien käyttöön...
|