为什么需要在ConnectionString中设置最小连接池大小?

20

对于SQL连接池,为什么我们需要设置最小池大小?由于连接将保存在连接池中并被重用,为什么我们需要保留由最小池大小指定的活动连接?谢谢。


为什么你_需要_?如果不指定最小尺寸,它就是0。 - Tim Schmelter
@TimSchmelter 我猜他想知道我们为什么需要它?有没有使用它的目的? - Ehsan
@TimSchmelter 是的,我的问题是什么是最小池大小的目的。 - Helic
2个回答

23

打开和维护连接是昂贵的,因此如果您知道需要多个连接(始终需要),最好指定MinPoolSize以确保这些连接可用。

此外,从MSDN上了解到:

如果连接字符串中未指定MinPoolSize或将其指定为零,则连接池中的连接将在一段时间内不活动后关闭。但是,如果指定的MinPoolSize大于零,则直到AppDomain卸载并且进程结束之前,连接池不会被销毁。维护非活动或空闲池涉及最小系统开销。


谢谢Tim!你是怎么找到这个的?我在网上搜索了很多地方,但没有找到这个很棒的规范。 - Helic
3
我刚刚查看了MSDN页面并搜索了"MinPoolSize"。 - Tim Schmelter

4

为什么我们需要保持由最小池大小指定的活动连接?

正如您所知,连接创建是一项资源密集型工作。因此,如果您的应用程序需要在闲置数小时后保持一致的响应时间,则可以选择将其设置为较小的数字,例如5。在这种情况下,第一个用户请求不必等待那些数据库连接建立。您可以在此处阅读有关池化的详细信息。


4
谢谢。如果我打开连接池,但将最小池大小设置为0,则连接可以在短时间内重用,但在较长一段时间后将被关闭。如果我将最小池大小设置为5,那么至少会保持5个连接永久打开?我是正确的吗?谢谢。 - Helic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接