使用Oracle的ODP.NET库,我正在处理的应用程序需要执行两种不同类型的查询,其中一种类型可能相对较慢,但另一种类型必须快速。我继承的当前应用程序代码完全禁用连接池,并为“快速”查询保持特定的连接对象打开,这对于此目的非常有用,因为如果第一次调用超过X毫秒,我们可以切换到另一个打开的连接,如果第二次呼叫没有足够快地返回,则提醒用户数据没有足够快地返回。
同时,在更改连接字符串以启用池之后,我们运行的常规查询会更快地返回,因此对这些查询使用池化会很好。
有没有办法可以为大多数目的启用池,但是为特定的连接对象禁用它?或者它会更容易(因为我们已经有代码基本上“汇集”关键查询的两个连接)只是扩展现有代码以通过一般查询的一小部分连接对象旋转,并保持两个其他连接分开对于更关键的查询?
答案 0 :(得分:1)
在链接到here的@Mino文章中,它声明:
如果修改了任何一个连接字符串参数,ODP.NET将在请求下一个连接时为您的应用程序创建一个新的连接池。
根据Visual Studio调试器和反汇编工具JustDecompile中的信息扩展和澄清该声明,我深信:
Oracle的连接池确实非常智能,可以满足我的需求。所有这些都使用Oracle.ManagedDataAccess.dll v4.121.1.0作为Oracle.com的ODAC 12.1.0.1.0 with Oracle Developer Tools for Visual Studio
包的一部分进行了调查。