Oracle
 sql >> Database >  >> RDS >> Oracle

Chiudere o non chiudere una Oracle Connection?

Ecco una presentazione contenente le best practice consigliate da Oracle:

http://www.oracle .com/technetwork/topics/dotnet/ow2011-bp-performance-deploy-dotnet-518050.pdf

Ottieni automaticamente un pool di connessioni quando crei un OracleConnection. Per la maggior parte delle applicazioni di livello intermedio vorrai trarne vantaggio. Ti consigliamo inoltre di ottimizzare il tuo pool per un carico di lavoro realistico attivando i contatori delle prestazioni nel registro.

Consultare la guida in linea di ODP.NET per i dettagli sul pool di connessioni. Le impostazioni del pool vengono aggiunte alla stringa di connessione.

Un altro problema che le persone incontrano spesso con OracleConnections è che il Garbage Collector non si rende conto di quanto siano veramente dispendiose in termini di risorse e non le ripulisce tempestivamente. Ciò è aggravato dal fatto che ODP.NET non è completamente gestito e quindi alcune risorse sono nascoste dal Garbage Collector. Quindi la migliore pratica è di Close() AND Dispose() tutti gli oggetti Oracle ODP.NET (incluso OracleConnection) per forzarne la pulizia.

Questo particolare problema verrà mitigato nel provider completamente gestito di Oracle (una versione beta uscirà a breve)

(EDIT:ODP.NET, il driver gestito è ora disponibile.)

Christian Shay

Oracolo