创建和使用 ODP.NET 连接的最佳方式

Optimal way to create and use ODP.NET connection

我正在尝试了解创建和使用与 ODP.NET 的连接的最有效且可维护的方法。

我在 VB.NET 中编写使用 ODP.NET 的函数的标准方法是这样的:

Function GetDataTable() As DataTable

    Using Connection = New OracleConnection(connectionStringNHH)
        Using Command As OracleCommand = Connection.CreateCommand()
            Using DataAdapter As New OracleDataAdapter()

                'Do stuff, fill dt

            End Using
        End Using
    End Using

    Return dt

End Function

但是,根据 Oracle 文档:

logging in and out of the database is an extremely resource-intensive operation [1]

每次调用此函数时,连接对象的创建和处理是否登录和退出数据库,或者会话是否以某种方式在整个应用程序范围内持续存在?

如果不是,我是否应该通过我的应用程序使用 public 连接对象?出于多种原因,这对我来说似乎是不好的做法。

默认情况下,您会在 OracleConnection 中获得一个连接池。连接生命周期和与数据库打开的相应会话将由池控制。有关所有详细信息,请参阅 ODP.NET 文档。

最佳做法是确保关闭并处置这些连接和其他 oracle 对象。

下面是一个应该有所帮助的最佳实践幻灯片:

https://www.oracle.com/technetwork/topics/dotnet/tech-info/oow18dotnetperfbp-5212811.pdf