Oracle在open()之后创建自动连接

时间:2014-11-13 11:18:35

标签: c# oracle oracle11g connection-pooling

当我使用C#创建新连接时,我可以看到有更多连接打开,但其中4个是自动创建的。这是以下SQL查询,在4个连接中被调用:

SELECT parameter, VALUE
  FROM sys.nls_database_parameters
 WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')

这些只在我打开连接时执行..任何想法如何阻止它们被调用,或者在执行后关闭它们? 或者是将池化设置为假的最佳解决方案?

任何想法??

谢谢!

1 个答案:

答案 0 :(得分:0)

多个连接可能是由连接池引起的。如果同时使用不同的连接对象调用多个数据库命令,则需要创建更多连接。默认最小池大小为1,池增加大小为5.因此,当您有一个连接并且需要更多连接时,可以打开更多数据库会话。

提取来自NLS_DATABASE_PARAMETERS的数据,因为客户端需要知道NLS设置。如果使用非托管Oracle.DataAccess,则会从非托管代码触发该命令。