一个连接池最多可以保持多少个连接?

6

连接池是如何工作的?如果我将最大池大小设置为20,那么只有20个用户能够同时连接到Web应用程序并进行事务吗?那么像亚马逊这样的大型网站会发生什么情况,在全球范围内有数千名用户同时登录,他们保持什么样的池大小?我不理解核心概念。我知道连接池保持打开的连接,用户重复使用这些打开的连接,但我想回答我的第一个问题。


2
我强烈怀疑你在这里走了一条错误的道路。调整连接池大小不会产生你认为的效果。不要改变默认设置,否则你将会经历痛苦。很多痛苦。 - Andrew Barber
3个回答

2

没有相关文档可以找到池的最大大小。默认的最大池大小为100

请参考MSDN


如果我将连接池大小保持在5个,那么是否只有5个用户能够同时连接并进行网站交易呢? - RachitSharma
我假设您正在使用ADO.NET,那么单个ADO.NET池只能连接到单个实例,因此最大有效限制为32767。 - Rahul Tripathi
为什么说通过 Web 应用程序打开数据库连接很昂贵?这是为什么呢? - RachitSharma
考虑每个数据库连接分配了多少内存。比如说你有500个数据库连接,那么会使用多少内存,同时也要考虑性能因素! :) - Rahul Tripathi
服务器为每个客户端连接维护多个缓冲区。其中一个用作与客户端交换信息的通信缓冲区。其他缓冲区针对每个客户端进行维护,用于读取表格并执行连接和排序操作。 - Rahul Tripathi

1

一次最多可以有32767个连接到数据库,也就是说,在任何时候,只有32767个用户可以通过Web应用程序向数据库进行交易。甚至不多一个。池大小没有提及,只有默认值(100)。但是SQL Server只会接受来自用户的32767个连接。证明:选择@@MAX_CONNECTIONS。如果误解,请纠正我。


0
用户连接选项指定在 SQL Server 实例上允许的最大并发用户连接数。实际允许的用户连接数还取决于您正在使用的 SQL Server 版本以及应用程序或硬件的限制。SQL Server 允许最多 32,767 个用户连接。因为用户连接是一种动态(自配置)选项,所以 SQL Server 根据需要自动调整最大用户连接数,最多到可允许的最大值。

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