我正在尝试了解与ODP.NET建立和使用连接最有效但可维护的方法。
我在使用odp.net的vb.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文档:
登录数据库是一个极为大量资源密集型操作[1]
每次调用此功能时,创建和处置连接对象都会登录和从数据库登录,或者会话在整个应用程序中持续以某种方式持续吗?
如果没有,我应该通过应用程序使用公共连接对象吗?出于多种原因,这对我来说似乎不好。
默认情况下,您可以在OracleConnection内部获得一个连接池。连接寿命和与数据库打开的相应会话将由池控制。有关所有详细信息,请参见ODP.NET文档。
最好的做法是确保这些连接和其他Oracle对象被关闭并处置。
这是最佳练习幻灯片甲板,应该有所帮助:
https://www.oracle.com/technetwork/topics/dotnet/tech-info/oow18dotnetperfbp-5212811.pdf