SQLServer的最大连接数

来源:互联网 发布:南京安全教育网络平台 编辑:程序博客网 时间:2024/05/22 09:43

SQLServer的最大连接数

  1. SQLServer到底支持多少连接数的并发?
  2. SQLServer是否可以满足现有的应用吗?
  3. 现有的技术架构支持多少连接数的并发?
  4. 在硬件性能与网络性能足够理想的情况下理论上可以支持多少并发连接?
  5. 生产环境中的数据库现在的并发量是多少?
  6. 如何监控现有数据库并发的数量?
  7. 生产环境中的并发量距离理论上的最大并量发还差多少?
using System;using System.Collections.Generic;namespace SQLServerMaxConnectionTest{    class Program    {        static void Main(string[] args)        {            int maxCount = 40000;            List<HotSpotEntities> collection = new List<HotSpotEntities>();            for (int i = 0; i < maxCount; i++)            {                Console.WriteLine(string.Format("成功创建连接对象{0}",i));                var db = new HotSpotEntities();                db.Connection.Open();                collection.Add(db);            }        }    }}


当创建到101个连接的时候,就无法再创建新连接了。也就是说,如果连接字符串不做任何处理,我们的程序只能够跟SQLServer建立101个连接。测试结果截图如下:



第二轮测试,启用连接池。

 

在连接字符串中加入代码:

Pooling=true;Max Pool Size=40000;Min Pool Size=0;

连续若干次内存都被耗尽了,不过结果还算欣慰。




最高记录是29299,很显然不是最高记录,只因为我的笔记本内存有限,所以很难突破。

 

微软对最大连接数的定义


 

微软在MSDN上对最大连接数的定义是:“默认是0,代表不限制,但最大连接数是32767”。 如下图所示:


如何监测SQLServer的连接数

 

SP_WHO 'loginName'
loginName 是当然登陆Sql的用户名,一般程序里面都会使用一个username来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。
如果不写loginName,那么返回的就是所有的连接。

既然连接数是可预测、可监测的,那么它就是可度量的,那么我们就可以根据实际情况来评估或测试程序的并发放量了。


0 0