Odkaz na článok je nasledovný:
http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html
1: Je SqlConnection bezpečný pre vlákna?
Je známe, že použitie spojenia na vykonanie SQL príkazu v viacvláknovom prostredí jeNie je to bezpečnéCieľ.
SqlConnection nie je bezpečný pre vlákna, takže multithreading je nevyhnutne problém. V skutočnosti .net automaticky poskytuje správu connection poolu, pokiaľ je connection string rovnaký (musí byť presne rovnaký), bude v tom istom poole, open a close v skutočnosti berú spojenie z poolu a vkladajú ho späť do poolu, čo nespôsobuje problémy s výkonom. Preto by sa po otvorení každého pripojenia malo čo najskôr po použití uzavrieť, aby sa spojenie mohlo vrátiť do poolu pre použitie inými programami.
2: Prečo ľudia stále používajú vyššie uvedenú metódu písania na vytváranie spojení?
Myslím, že si môžu myslieť, že vytváranie viacerých spojení je časovo náročné a že viacero spojení zaberá pamäť, ovplyvňuje výkon a podobne.
3: Zaberá každý nový SqlConnection pamäť a zdroje, čo ovplyvňuje výkon?
To je slepé myslenie, slepé obavy.
Pretože"Vytvorenie viacerých spojení" nemusí nevyhnutne vytvoriť viacero nových databázových spojeníDatabázové pripojenie je cenný zdroj, pokiaľ ide o MS SQL Server, tento zdroj bude interne optimalizovaný a spojenie bude znovu použité.
Connection pool poskytuje .net, v connection stringu je vlastnosť Pooling, predvolená je true, teda connection pool je predvolene zapnutý, čo nemá nič spoločné so SQL serverom, ak napíšete Pooling=false do connection stringu, potom neexistuje connection pool, to je úplne . Optimalizácia pre .NET.
Skúmanie dôsledkov použitia rovnakého databázového pripojenia vo viacerých vláknach Odkaz na článok: http://www.th7.cn/Program/java/201503/415005.shtml
Zhrnutie: V prostredí s viacvláknovým prostredím môže použitie jedného spojenia spôsobiť zmätok v transakciách bez bezpečného spracovania spojenia.... Ovplyvňuje používanie transakcií JDBC...
|