Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 19962|Risposta: 0

[Fonte] Come utilizzare correttamente SqlConnection, il thread di SqlConnection è sicuro?

[Copiato link]
Pubblicato su 19/11/2016 08:46:14 | | |
Il link all'articolo è il seguente:

http://www.cnblogs.com/LoveJenny/archive/2011/10/31/2229738.html

1: SqlConnection è thread-safe per thread?

Si può sapere che l'uso di una Connessione per eseguire un'istruzione SQL in un ambiente multithread èNon è sicuroBersaglio.

SQL Connection non è thread safe, quindi il multithreading è destinato a essere un problema.
Infatti, .net fornisce automaticamente la gestione del pool di connessioni, finché la stringa di connessione è la stessa (deve essere esattamente la stessa), sarà nello stesso pool, open e close stanno effettivamente prendendo una connessione dal pool e rimettendendola nel pool, il che non causerà problemi di prestazioni. Pertanto, dopo l'apertura di ogni connessione, dovrebbe essere chiusa il prima possibile dopo l'uso, così che la connessione possa essere restituita al pool per l'uso di altri programmi.



2: Perché le persone continuano a usare il metodo di scrittura sopra descritto per creare Connessioni?

Penso che possano pensare che creare più Connessioni richieda tempo, e che più Connessioni consumino memoria, influenzino le prestazioni, ecc.


3: Ogni nuovo SqlConnection occupa memoria e risorse, influenzando le prestazioni?

Questo è pensiero cieco, preoccupazione cieca.

Perché"Creare più connessioni" non crea necessariamente più nuove connessioni a databaseLa connessione al database è una risorsa preziosa; per MS SQL Server, questa risorsa preziosa sarà ottimizzata internamente e la connessione verrà riutilizzata.

Il pool di connessione è fornito da .net, c'è una proprietà di Pooling nella stringa di connessione, il predefinito è vero, cioè il pool di connessione è attivato di default, questo non ha nulla a che vedere con SQL Server, se scrivi Pooling=false nella stringa di connessione, allora non esiste un pool di connessioni, questo è completamente . Ottimizzazione .NET.



Esplorare le conseguenze dell'utilizzo della stessa connessione al database in più thread
Link dell'articolo: http://www.th7.cn/Program/java/201503/415005.shtml

Sommario: In un ambiente multithread, l'uso di una singola connessione può causare confusione nelle transazioni senza una gestione thread-safe della connessione.... Influisce sull'uso delle transazioni JDBC...




Precedente:javascrip{filter}t: la differenza tra history.go() e History.back().
Prossimo:C# Connessione a database SQL Stringhe di connessione comuni
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com