我在Windows Server 2008机器上运行SQL Server 2008 R2 SP1。我有一个从Visual Studio 2010运行的.NET脚本,它执行以下操作:
- 到达数据库
- 做出改变
- 迭代
迭代的总次数为150,但是它在100个连接处停止,我不知道为什么。我可以将脚本调整为仅使用一个线程,但是我想知道我在哪里缺少最大连接设置,因为这对于以后的参考更为有用。
到目前为止,这是我检查过的地方:
- Visual Studio 2010中的SQL连接字符串(设置为1000)
- SSMS数据库实例连接属性(设置为0 [infinity]用户连接)
- Google在Server 2008上搜索了一些信息,看起来它可以处理100多个连接
- 逐步浏览我的代码,
SP_WHO2
其中提供了有关逻辑连接的更多信息,看到连接数从52开始,脚本错误和“达到最大池连接数”错误在152逻辑连接。 - 更改了要使用的连接字符串
Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000
我不确定其他地方是否需要检查,我知道我在这里有很多活动部件,但是我感到自己只是在某个地方缺少最大泳池设置。
System.Data.SqlClient
默认值为100,这就是为什么看到连接池已用尽的原因)。