【发布时间】:2013-10-11 14:51:59
【问题描述】:
所以,我希望增加最大池大小。问题是我不知道“合理”的增加是多少。现在我没有设置它,只是使用默认值 100。以下是我更具体的问题:
为什么这个数字默认为 100,似乎很低。将其显着提高到 1000 或类似的值有什么负面影响?
有没有好的方法来确定这个 Max 应该提高到什么程度?
连接池的“范围”是什么?这个池是数据库的所有连接吗?每个“机器/服务器”连接都有自己的池?
背景:
当我的应用程序运行时,我们收到以下错误:
“超时。在从池中获取连接之前已经过了超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。”我已经阅读了很多其他类似问题的帖子,所有这些帖子都讨论了我应该如何做两件事中的一件。
- 确保在打开所有连接后关闭它们
- 增加最大池大小
我有一个非常大的应用程序,因此 (1) 很难确定某个连接是否未关闭。我找不到不是的。
【问题讨论】:
-
这里有一个关于您是否需要的要点的很好总结:stackoverflow.com/questions/5793960/…;假设您已阅读本文并且确定您需要更多,这可能有助于查看您是否是
leaking连接? blogs.msdn.com/b/angelsb/archive/2004/08/25/220333.aspx -
如果您有连接泄漏(打开而不关闭)增加池大小可能无济于事,因为打开的连接会无限期地保持打开状态。默认情况下,100 能够在连接关闭并且查询发生相当快的情况下处理大负载。连接池在 .net 服务器端维护,因此每个 .net 服务器都维护自己的池
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
是的,我实际上是想将标题改为:“为我的连接池确定将最大池大小提高到什么。我没有看到可以在哪里编辑它
-
所以我们最终找到了打开连接的位置,然后抛出了 Sql 异常,没有设置“Finally”块来确保连接已关闭。感谢您的文章和帮助。
标签: c# sql-server wcf