Vb.net 创建和使用ODP.NET连接的最佳方法
我试图了解创建和使用ODP.NET连接的最有效但可维护的方法是什么 我在VB.NET中编写使用ODP.NET的函数的标准方法如下:Vb.net 创建和使用ODP.NET连接的最佳方法,vb.net,oracle,odp.net,Vb.net,Oracle,Odp.net,我试图了解创建和使用ODP.NET连接的最有效但可维护的方法是什么 我在VB.NET中编写使用ODP.NET的函数的标准方法如下: Function GetDataTable() As DataTable Using Connection = New OracleConnection(connectionStringNHH) Using Command As OracleCommand = Connection.CreateCommand() U
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文档:
登录和注销数据库是一项极其耗费资源的操作[]
每次调用此函数时,是否创建和处理连接对象都会登录和注销数据库,或者会话是否以某种方式在应用程序范围内保持
如果不是,我应该通过我的应用程序使用公共连接对象吗?对于我来说,这似乎是一种糟糕的做法,原因有很多。默认情况下,您在OracleConnection中获得了一个连接池。连接生存期和与数据库打开的相应会话将由池控制。有关所有详细信息,请参见ODP.NET文档 最佳做法是确保这些连接和其他oracle对象被关闭和处置 下面是一个最佳实践幻灯片组,它将有助于:
这是正确的做法。除非您更改设置,否则连接池将解决此问题。ADO.NET通常会使实际的数据库连接位于较低级别,并且在您关闭高级连接后,它将保持打开状态一段时间。谢谢。这是我的感觉,但找不到任何明确说明这一点的文档(可能是一些劣质的google fu)。不要公开任何oracle对象…一旦你公开了它们,它们将跨越程序集边界,然后更改数据库引用将成为一个令人头痛的问题…如果您需要公开对象…公开它们的底层接口以获得此有用的链接。