你改过一反调查发现,这个连接池的总连接数也就100来个,我想问的是sql server作为一个大型数据库,连接池为何才100多个?那同时访问应用程序读取数据岂不是只能支持100多个用户?
另外 这个总数如何配置?
你概念错了。SQL Server根本就没有连接池,SQL Server支持的最大用户连接是32767个。这里有篇文章写了SQL Server最大容量规范,里面有[用户连接]一项。
http://msdn.microsoft.com/zh-cn/library/ms143432.aspx
连接池是应用程序提供的,.NET自动提供连接池,在ConnectionString中默认是开启的,默认最大是100,这个数字你可以更改。比如"Server=localhost;Data Catalog=databasename;Max Pool Size=300"之类的。
所以先搞清楚概念再说。
Connection对象是比较耗资源的,所以才会有连接池,Connection用完之后,Close就把Connection放到连接池,下次用的时候,就不要创建了,直接拿来用就行了!默认是开启,设置Pooling=false,将连接池关了,你测试一下,就知道了,还有vs有压力测试,你也可以测试一下!
你能确定正好100个用户能用掉100个连接吗?某些用户使用连接的时间可能只有几毫秒,然后由返回给下个用户用了。时间恰好的话说不定1个连接搞定100个用户