.Net 中的 Oracle 连接池

Oracle Connection Pooling in .Net

我们有一个使用 Oracle 数据库的系统。有人问我系统是否使用了我不确定的连接池。

我们正在使用 Oracle.DataAccess.Client.OracleConnection

在阅读该主题时,我发现连接池在连接字符串中设置为 true,并且默认设置为 true。

我们的连接字符串不包含任何池设置。这是否意味着我们正在使用池化?如果是这样,默认的最小和最大池大小是多少?在隐式使用连接池的情况下(即未在连接字符串中指定),我无法找到有关这些值的任何信息。

默认情况下连接池是打开的,如official ODP.NET documentation on Connection String Attributes(默认值:Pooling = true)中指定的那样。

因此,如果您的连接字符串省略任何类型的连接池设置,您将获得具有以下基本默认设置的连接池,同样基于相同的 official ODP.NET documentation page on Connection String Attributes:

  • Connection Timeout = 15:等待池中空闲连接的最长时间(以秒为单位)。
  • Decr Pool Size = 1: 当大量已建立的连接未被使用时关闭的连接数。
  • Incr Pool Size = 5: 当池中的所有连接都被使用时要创建的新连接数。
  • Max Pool Size = 100: 一个池中的最大连接数。
  • Min Pool Size = 1: 池中的最小连接数。

该文档还提到了其他有趣的默认池值,您可能还想阅读这些值。