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...
|