关闭还是不关闭 Oracle 连接?

2024-04-14

我的应用程序存在性能问题,因此我开始从根本上调查这个问题:“与数据库的连接”。

最佳实践说:“打开连接,使用它并尽快关闭”,但我不知道这会导致的开销,所以问题是:

1 -“尽快打开、使用、关闭连接是使用 ODP.NET 的最佳方法吗?”

2 - 有没有办法以及如何在 ODP.NET 中使用连接池? 我正在考虑创建一个列表来存储一些连接字符串,并创建一个逻辑来在每次需要时选择“最佳”连接。这是最好的方法吗?


以下幻灯片包含 Oracle 推荐的最佳实践:

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

创建 OracleConnection 时,您会自动获得连接池。对于大多数中间层应用程序,您将希望利用这一点。您还需要通过打开注册表中的性能计数器来调整池以适应实际工作负载。

有关连接池的详细信息,请参阅 ODP.NET 联机帮助。池设置已添加到连接字符串中。

人们在使用 OracleConnections 时经常遇到的另一个问题是,垃圾收集器没有意识到它们确实是资源密集型的,并且没有及时清理它们。由于 ODP.NET 未完全托管,因此某些资源对垃圾收集器隐藏,这一事实使情况变得更加复杂。因此,最佳实践是 Close() 和 Dispose() 所有 Oracle ODP.NET 对象(包括 OracleConnection)以强制清理它们。

这个特殊问题将在 Oracle 的完全托管提供商中得到缓解(测试版很快就会推出)

(编辑:ODP.NET,托管驱动程序现已推出。)

克里斯蒂安·谢伊

Oracle

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭还是不关闭 Oracle 连接? 的相关文章

随机推荐