Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Soll eine Oracle-Verbindung geschlossen oder nicht geschlossen werden?

Hier ist ein Slide-Deck mit den empfohlenen Best Practices von Oracle:

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

Sie erhalten automatisch einen Verbindungspool, wenn Sie eine OracleConnection erstellen. Für die meisten Middle-Tier-Anwendungen werden Sie davon profitieren wollen. Sie sollten Ihren Pool auch für eine realistische Arbeitslast optimieren, indem Sie Leistungsindikatoren in der Registrierung aktivieren.

Einzelheiten zum Verbindungspooling finden Sie in der ODP.NET-Onlinehilfe. Pooleinstellungen werden der Verbindungszeichenfolge hinzugefügt.

Ein weiteres Problem, auf das viele Leute bei OracleConnections stoßen, ist, dass der Garbage Collector nicht erkennt, wie wirklich ressourcenintensiv sie sind, und sie nicht sofort bereinigt. Hinzu kommt, dass ODP.NET nicht vollständig verwaltet wird und daher einige Ressourcen vor dem Garbage Collector verborgen sind. Daher besteht die beste Vorgehensweise darin, alle Oracle ODP.NET-Objekte (einschließlich OracleConnection) mit Close() AND Dispose() zu schließen, um deren Bereinigung zu erzwingen.

Dieses spezielle Problem wird im vollständig verwalteten Anbieter von Oracle behoben (eine Beta-Version wird in Kürze herauskommen)

(EDIT:ODP.NET, Managed Driver ist jetzt verfügbar.)

Christian Shay

Orakel