Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19962|Odpoveď: 0

[Zdroj] Ako správne používať SqlConnection, je SqlConnection vlákno bezpečné?

[Kopírovať odkaz]
Zverejnené 19. 11. 2016 8:46:14 | | |
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...




Predchádzajúci:javascrip{filter}t:the difference between history.go() a History.back().
Budúci:C# Pripojenie k SQL databázam Bežné spojovacie reťazce
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com