数据库最大池连接大小

问题描述 投票:0回答:1

我已经阅读了一些有关Connection pool的文章,这些文章为我提供了有关其工作原理的基本知识,但我有一些疑问,我需要一些帮助。

根据我的连接池的语法

据我这里是sql连接字符串连接池的实现是:-

Data Source=.\SQLEXPRESS;Initial Catalog=DBName;User Id=sa;password=123456789;MultipleActiveResultSets = True;Connection Lifetime=0;Min Pool Size=0;Max Pool Size=100;Pooling=true;"

最大池大小如何工作?

  • 它是否将每个关闭的连接都转移到连接池?
    • 如果是这样,那么由于Max Pool Size=100,它将保持100个这样的封闭连接吗?
    • 连接池中这些关闭的100个连接是否仍算作与SQL Server的活动连接?
    • 如果是这样,那么如果多个用户尝试连接它,SQL Server会不会用尽连接?
  • 何时清除连接池?
    • 是自动清除还是我们必须手动清除?

如果您可以帮助我解决上述问题,或者引导我获得内容丰富的文章或视频,这将非常有帮助。

sql-server-2008-r2 database-connection connection-string connection-pooling
1个回答
0
投票

ADO.NET连接池默认情况下处于启用状态,默认连接池设置(例如最大池大小= 100)适合大多数应用程序。有关权威性的答案和详细信息,请参见SqlConnection.ConnectionStringADO.NET connection pooling文档。

总之,关闭/处置后,连接会返回到池中。这些未使用的池化连接在技术上在SQL Server中不是活动的,但处于休眠状态,等待重用。在空闲时间(几分钟)后未重用的池连接将被物理关闭,以减少服务器和客户端上的资源。连接池自动执行此内部管理。

。NET应用程序中的最佳实践是使用using块来确保连接在使用后返回到池中,而无需显式关闭它们。

© www.soinside.com 2019 - 2024. All rights reserved.