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

Vista: 63300|Risposta: 7

[.NET Core] ADO.NET Creare un pool di connessione SqlConnection tramite ObjectPool

[Copiato link]
Pubblicato il 19-04-2020 18:51:31 | | | |
ObjectPool è una nuova funzionalità di Microsoft, Microsoft ci aiuta a mantenere alcuni oggetti che possono essere riutilizzati.

Per dirla semplicemente, simile alle biciclette condivise, quando la usi, scansiona il codice per sbloccarla, il veicolo significa che è occupato, quando lo usi, quando chiudi l'auto, il veicolo rilascia l'occupazione. Queste occupazioni e scariche sono tutte gestite dalla piattaforma per noi.

Alcuni oggetti non sono thread-safe, ma ogni volta che istanziamo l'oggetto, dobbiamo consumare alcune risorse.

Spiegazione dettagliata dell'Object Pool in .NET Core
https://www.itsvse.com/thread-9152-1-1.html
(Fonte: Architect_Programmer)
Per prima cosa, creiamo una nuova classe SqlConnectionPooledObjectPolicy che eredita l'interfaccia IPooledObjectPolicy <T>e deve implementarne i due metodi.

Come istanziare l'oggetto nel metodo Crea,Return indica se l'oggetto può ancora essere riutilizzato e, quando viene restituito falso, l'oggetto verrà eliminato dal pool di oggetti.

Il codice sorgente del test è il seguente:

I risultati dei test sono i seguenti:



Si può vedere che il pool di connessioni è un po' più lento nelle prime 10 query e, dopo di ciò, è più veloce di ogni istanza di SqlConnection.

Allegato è il codice sorgente

Turisti, se volete vedere il contenuto nascosto di questo post, vi pregoRisposta






Precedente:I programmi C# eseguono classi di test che richiedono molto tempo
Prossimo:Configurazione Trusted_Connection MSSQL
Pubblicato il 19-04-2020 21:58:46 |
Questa è una novità
Pubblicato il 30-04-2020 13:05:18 |
Vieni a vedere, supporto, divano
 Padrone di casa| Pubblicato il 22-03-2021 15:31:43 |
Codice sorgente DefaultObjectPoolProvider
Massimo Ambiente Predefinito.ProcessorCount * 2;





 Padrone di casa| Pubblicato il 2021-3-22 15:34:51 |
Può anche essere scritto direttamente


 Padrone di casa| Pubblicato il 23-03-2021 09:50:57 |
Codice di test:

maximumRetained è impostato a 5, e il test viene istanziato solo una volta quando viene restituito ogni volta che viene utilizzato, come mostrato nella figura sottostante:



Nel caso in cui non venga restituito, il Test viene istanziato 10 volte, anche se supera l'impostazione massimo Retained di 5, e non lancia un'eccezione, può essere che, dopo il completamento dell'uso, venga riciclato lentamente, e poi verranno mantenute solo 5 istanze:


 Padrone di casa| Pubblicato il 24-03-2021 18:23:44 |
SQL Server Connection Pool (ADO.NET)

Ogni volta che un utente chiama Open su una connessione, il processo del pool cerca le connessioni disponibili nel pool. Se è disponibile una connessione pool, viene restituita al chiamante invece di aprire una nuova connessione. Quando l'applicazione chiama Chiudere su quella connessione, il processo del pool restituisce la connessione al set di pool di connessioni attivo invece di chiuderla.

https://docs.microsoft.com/zh-cn ... -connection-pooling

Pubblicato il 17-08-2021 alle 10:13:07 |
Impara a imparare
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