当我使用C#创建新连接时,我可以看到有更多连接打开,但其中4个是自动创建的。这是以下SQL查询,在4个连接中被调用:
SELECT parameter, VALUE
FROM sys.nls_database_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')
这些只在我打开连接时执行..任何想法如何阻止它们被调用,或者在执行后关闭它们? 或者是将池化设置为假的最佳解决方案?
任何想法??
谢谢!
答案 0 :(得分:0)
多个连接可能是由连接池引起的。如果同时使用不同的连接对象调用多个数据库命令,则需要创建更多连接。默认最小池大小为1,池增加大小为5.因此,当您有一个连接并且需要更多连接时,可以打开更多数据库会话。
提取来自NLS_DATABASE_PARAMETERS的数据,因为客户端需要知道NLS设置。如果使用非托管Oracle.DataAccess,则会从非托管代码触发该命令。