Nuoroda į straipsnį yra tokia:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Ar "SqlConnection" yra saugus sriegiams?
Gali būti žinoma, kad ryšio naudojimas SQL sakiniui vykdyti kelių gijų aplinkoje yraNesaugusTikslinės.
"SqlConnection" nėra saugus sriegiams, todėl multithreading privalo būti problema. Tiesą sakant, .net automatiškai teikia ryšio telkinio valdymą, kol ryšio eilutė yra ta pati (turi būti lygiai tokia pati), ji bus tame pačiame telkinyje, atidaryti ir uždaryti iš tikrųjų ima ryšį iš telkinio ir įdeda ryšį atgal į baseiną, o tai nesukels našumo problemų. Todėl atidarius kiekvieną jungtį, ją reikia kuo greičiau uždaryti, kad ryšį būtų galima grąžinti į baseiną, kad būtų galima naudoti kitas programas.
2: Kodėl žmonės vis dar naudoja aukščiau pateiktą rašymo metodą, kad sukurtų ryšius?
Manau, jie gali manyti, kad kelių ryšių kūrimas užima daug laiko, o keli ryšiai užima atmintį, turi įtakos našumui ir pan.
3: Ar kiekvienas naujas "SqlConnection" užima atmintį ir išteklius, o tai daro įtaką našumui?
Tai aklas mąstymas, aklas nerimas.
Nes"Kelių ryšių kūrimas" nebūtinai sukuria kelis naujus duomenų bazės ryšiusDuomenų bazės ryšys yra vertingas šaltinis, kiek tai susiję su MS SQL Server, šis vertingas išteklius bus optimizuotas viduje, ir ryšys bus pakartotinai naudojamas.
Ryšio telkinį teikia .net, ryšio eilutėje yra telkimo ypatybė, numatytasis yra teisingas, tai yra, ryšio telkinys įjungtas pagal numatytuosius nustatymus, tai neturi nieko bendra su sql serveriu, jei ryšio eilutėje rašote Pooling=false, tada nėra ryšio telkinio, tai yra visiškai . .NET optimizavimas.
To paties duomenų bazės ryšio naudojimo keliose gijose pasekmių tyrimas Straipsnio nuoroda: http://www.th7.cn/Program/java/201503/415005.shtml
Santrauka: Kelių gijų aplinkoje vieno ryšio naudojimas gali sukelti painiavą sandoriams, nesaugiai tvarkant ryšio.... Turi įtakos JDBC operacijų naudojimui...
|