我应该在数据库连接字符串中设置最大池大小吗?如果我不这样做会怎么样?

Mon*_*RPG 56 sql connection-string connection-pooling sql-server-2008

这是我的数据库连接字符串.到目前为止我没有设置最大池大小.

public static string srConnectionString = 
                       "server=localhost;database=mydb;uid=sa;pwd=mypw;";
Run Code Online (Sandbox Code Playgroud)

那么目前我的应用程序支持多少个连接?增加连接池大小的正确语法是什么?

该应用程序是用C#4.0编写的.

Zap*_*ood 76

目前您的应用程序支持池中的100个连接.如果你想将它增加到200,那么conn字符串将是什么样子:

public static string srConnectionString = 
                "server=localhost;database=mydb;uid=sa;pwd=mypw;Max Pool Size=200;";
Run Code Online (Sandbox Code Playgroud)

您可以通过sp_who在数据库中执行过程来调查应用程序使用数据库的连接数.在大多数情况下,默认连接池大小就足够了.

  • @Pierre - 您将收到类似于以下内容的错误:System.InvalidOperationException:Timeout已过期.从池中获取连接之前经过的超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小.System.Data.SqlClient.SqlConnection.Open()上的System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString选项,Boolean和isInTransaction) (4认同)
  • 是否有另一种设置Max和Min池化的方法比通过连接字符串?我宁愿在代码中这样做...... (3认同)

Lam*_*nar 11

"目前是的,但我认为它可能会在高峰时刻引起问题" 我可以确认,我遇到了因为峰值请求而导致超时的问题.设置最大池大小后,应用程序运行没有任何问题.IIS 7.5/ASP.Net

  • 这不是答案 (4认同)