Domanda

Quando si sviluppa un'applicazione (web, win, qualunque cosa) che fa un sacco di accesso ai dati, è meglio mantenere l'oggetto di accesso ai dati aperto per la lunghezza della richiesta (cioè fare molte cose di seguito, quindi chiuderlo quando hai finito) o continui ad aprirne e chiuderne di nuove?

protected aDataContext dc = new aDataContext();

vs

private aObject GetInfo(...) {...}

Penso che il primo sarebbe migliore per le prestazioni; ma sembra una cattiva pratica.

È stato utile?

Soluzione

In genere dovresti aprire una nuova connessione per ogni unità di lavoro, usarla e chiuderla il prima possibile. Internamente .NET (o ADO o ODBC o altro) metterà in comune le connessioni per te, purché la stringa di connessione sia la stessa, quindi in realtà è molto efficiente. Vi sono altri problemi da tenere in considerazione, in particolare le transazioni, ma in generale è meglio seguire questo modello di open-do-close e consentire a .NET di gestire il pool di connessioni.

Altri suggerimenti

Meglio usare un pool di connessioni. mantenere aperto un numero limitato di connessioni il più possibile. L'apertura di una connessione è costosa, ma avere milioni di connessioni aperte potrebbe uccidere il tuo server. dovresti confrontare il tuo scenario per i migliori risultati ....

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top