精华内容
下载资源
问答
  • 今天遇到了关于Sql Server最大连接数(Max Pool Size)的问题,后来通过查找一些资料解决了,所以想着总结下关于SQL Server最大连接数的内容,所以这篇文章主要介绍了SQL设置SQL Server最大连接数与查询语句,有需要...
  • SQLServer最大连接数

    千次阅读 2017-04-30 12:54:14
    SQLServer最大连接数SQLServer到底支持多少连接数的并发?SQLServer是否可以满足现有的应用吗?现有的技术架构支持多少连接数的并发?在硬件性能与网络性能足够理想的情况下理论上可以支持多少并发连接?生产环境...

    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,那么返回的就是所有的连接。

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


    展开全文
  • SQL Server最大连接数问题

    万次阅读 2017-09-22 11:00:25
    1.首先,看了看SQL Server服务器属性的配置,看到连接数为0,即不限制,SQLserver最大连接数为32767。看来应该不是这里的问题 2.百度了一下,发现可能是程序的数据库连接字符串出了问题 自己写了个代码测试一下 ...

    最近公司测试在进行服务器性能测试,在处理超过100个并发请求后,数据库就崩掉了。

    闲着没事,就找了一下原因。


    1.首先,看了看SQL Server服务器属性的配置,看到连接数为0,即不限制,SQLserver最大连接数为32767。看来应该不是这里的问题


    2.百度了一下,发现可能是程序的数据库连接字符串出了问题

    自己写了个代码测试一下

        class Program
        {
            private static void Main(string[] args)
            {
                TestSQLServerConnectionCount();
                Console.Read();
            }
    
            public static void TestSQLServerConnectionCount()
            {
                try
                {
                    int maxCount = 40000;
                    string connectionString =
                        "Data Source=localhost;Initial Catalog=EveryDayTest;User Id=sa;Password=sa123;";
                    for (int i = 1; i < maxCount; i++)
                    {
                        var db = new SqlConnection(connectionString);
                        db.Open();
                        Console.WriteLine("已创建连接对象" + i);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
         }
    发现最多只能创建100个,


    然后添加了属性Max Pool Size=101,又测了一下,恩可以了

    。恩果然是这里,不过。在测试系统的时候发现,有的时候连接数到达40多或60多或80多后就不再增长了,难道说这里有个重复利用数据库连接的机制?

    找了一下,发现有个Pooling属性,默认为true,于是加上了这条Pooling=false,运行一下


    哇擦,已经超过了32767!!!难道说这个属性可以让连接反复利用,从连接池取出来可以再次使用的连接对象?还是说根本不受连接池的最大限制?


    果然,看了一下连接池的运行方式发现:

    1、当一个程序执行Connection.open()时候,ADO.net就需要判断,此连接是否支持Connection Pool (Pooling 默认为True)
     
    (1)、如果指定为False, ADO.net就与数据库之间创建一个连接,然后返回给程序。
     
    (2)、如果指定为 True,ADO.net就会根据ConnectString创建一个Connection Pool,然后向Connection Pool中填充Connection。填充多少个Connection由Min Pool Size (默认为0)属性来决定。例如如果指定为5,则ADO.net会一次与SQL数据库之间打开5个连接,然后将4个Connection,保存在 Connection Pool中,1个Connection返回给程序。
     
     
    2、当程序执行到Connection.close() 的时候。如果Pooling 为True,ADO.net 就把当前的Connection放到Connection Pool并且保持与数据库之间的连接。
     
    同时还会判断Connection Lifetime(默认为0)属性,0代表无限大,如果Connection存在的时间超过了Connection LifeTime,ADO.net就会关闭的Connection同时断开与数据库的连接,而不是重新保存到Connection Pool中。
     
     
    3、当下一次Connection.Open() 执行的时候,ADO.Net就会判断新的ConnectionString与之前保存在Connection Pool中的Connection的connectionString是否一致。
     
     
    4、 ADO.net需要判断当前的Connection Pool中是否有可以使用的Connection(没有被其他程序所占用),如果没有的话,ADO.net就需要判断ConnectionString设 置的Max Pool Size (默认为100)
     
    (1)、如果Connection Pool中的所有Connection没有达到Max Pool Size,ADO.net则会再次连接数据库,创建一个连接,然后将Connection返回给程序。
     
    (2)、如果已经达到了 MaxPoolSize,ADO.net就不会再次创建任何新的连接,而是等待Connection Pool中被其他程序所占用的Connection释放,这个等待时间受SqlConnection.ConnectionTimeout(默认是15 秒)限制,也就是说如果时间超过了15秒,SqlConnection就会抛出超时错误。
     
     
    5、如果有可用的Connection,从Connection Pool 取出的Connection也不是直接就返回给程序,ADO.net还需要检查ConnectionString的ConnectionReset属性 (默认为True)是否需要对Connection 最一次reset。

    -------------------摘自《http://www.studyofnet.com/news/637.html  数据库最大连接池max pool size


    不过,为什么系统测试时到了60左右的连接数不再增长了?max pool size配置100+个啊?

    求大神解释...........



    展开全文
  • SQL Server 2008设置最大连接数,里面有详细的说明,包括sql数据库的优化
  • SQL设置SQLServer最大连接数

    千次阅读 2016-07-04 15:12:37
    设置最大连接数   下面的T-SQL 语句可以配置SQL Server 允许的并发用户连接的最大数目。   exec sp_configure 'show advanced options', 1 exec sp_configure 'user connections', 100 第一句用以表示显示sp...
    设置最大连接数
    
     
    下面的T-SQL 语句可以配置SQL Server 允许的并发用户连接的最大数目。
     
    exec sp_configure 'show advanced options', 1
    exec sp_configure 'user connections', 100
    第一句用以表示显示sp_configure 系统存储过程高级选项,使用user connections 时,要求show advanced options 值为1。
     
    第二句配置最大连接数为100,0 表示不限制,但不表示无限,后面将谈谈。
     
    也可以在企业管理器中配置,在企业管理器中,可以在实例上点右键->“属性”->“连接”里面更改。
     
    需要重新启动SQL Server,该值才会生效。
     
    @@max_connections
     
    select @@max_connections
    它总是返回32767,它并不是指上面设置的user connections,实际上它表示user connections 最大可设置为多少。由于它的最大值是32767,那么user connections 为0 时,最大连接数也就是32767 了,并不是无限。
     
    默认情况下user connections 值是0,也就是说默认情况下SQL Server 的最大连接数是32767。
     
    获得当前设置的最大连接数:
     
     
    select value from  master.dbo.sysconfigures where [config]=103 
    展开全文
  • 1. 查询最大连接数 SELECT value_in_use FROM sys.configurations c WHERE c.name = 'user connections'; 默认值为:0,即无限制。 2. 查询当前连接数 select count(distinct(login_time)) from sys....

    1. 查询最大连接数

    SELECT value_in_use
    FROM sys.configurations c
    WHERE c.name = 'user connections'; 
    

    默认值为:0,即无限制。

     

    2. 查询当前连接数

    select count(distinct(login_time)) from sys.sysprocesses 
    

    3. 设置最大连接数

    exec sp_configure 'show advanced options', 1 
    GO
    
    exec sp_configure 'user connections', 30    
    GO
    
    RECONFIGURE WITH OVERRIDE
    GO
    

    设置过后需要重启数据库才会生效。

    展开全文
  • SQLServer到底支持多少连接数的并发?SQLServer是否可以满足现有的应用吗?现有的技术架构支持多少连接数的并发?在硬件性能与网络性能足够理想的情况下理论上可以支持多少并发连接?生产环境中的数据库现在的并发量...
  • 如何查看sql server数据库连接数
  • 界面操作:服务器连接->属性->选择页中的连接->最大并发连接数,可直接设置,默认为0,表示无限制连接数SQL语句:默认最大连接数:32767 SELECT @@MAX_CONNECTIONS–查看最大连接数
  • Sql Server最大连接数(Max Pool Size)

    万次阅读 2016-01-22 17:08:06
    Server最大连接数(Max Pool Size)的配置问题 Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置 参考数据库链接串: [code=sql] [/code] 查看应用程序池占用数量: ...
  • 获取SQL Server连接数与监视SQL Server连接状态的方法 (1)通过活动监视器 第一步:打开MSSMS管理器,单击“活动监视器”图标。   第二步:在打开活动监视器视图中,单击“进程”选项卡。 第三...
  • SQLServer查看及设置最大连接数

    万次阅读 2019-01-21 14:33:07
    1. 查询最大连接数 SELECT value_in_use FROM sys.configurations c WHERE c.name = 'user connections'; 默认值为:0,即无限制。 2. 查询当前连接数 select count(distinct(login_time)) from sys.sysprocesses ...
  • VSCode插件 SQL Server 连接 Microsoft Server SQL

    千次阅读 热门讨论 2020-09-12 16:01:16
    VSCode插件 SQL Server 连接 Microsoft Server SQL SQL Server (mssql) 微软公司开发的SQL Server连接VSCode插件 安装插件 Ctrl+Shift+X 输入SQL Server (mssql),点击install 连接MSSQL 安装好插件后,在左边的...
  • 1、获取SQL Server允许同时用户连接最大数    SELECT @@MAX_CONNECTIONS      2、获取当前指定数据库的连接信息    SELECT * FROM master.dbo.sysprocesses WHERE dbid IN ( SELECT dbid FROM master.dbo....
  • 查看SQL SERVER数据库的连接数

    千次阅读 2019-01-26 14:34:31
    查看SQL SERVER数据库的连接数 2018-03-16 14:29 by xiashengwang, 5571 阅读, 0 评论, 收藏, 编辑 1,查看连接到‘TestDB2’数据库的连接 select * from master.dbo.sysprocesses where dbid = DB_ID('...
  • 达到了最大池大小 错误及Max Pool Size设置 参考数据库链接串: [code=sql]<add key="data" value="server=192.168.1.123; Port=3306; uid=root; pwd=root;database=data;pooling=true;min pool size=5;max poo....
  • 所以我写了个测试程序来测试连接池的最大连接数就是max_connection,但是由于连接池自己的回收机制,总是不能如愿,但是发现连接池的Max Size不管设置多大,不同的机器到最后总是一定的,比方说说是250或336等;...
  • 修改sql server连接数

    千次阅读 2009-09-25 17:27:00
    如何修改SQL Server连接数 我把SQL Server 7.0的用户连接数设为1后,数据库就再也连不上了,所以也没办法修改连接数 请问有什么办法能修改连接数? 在server 的属性里面有个connetctions 的 maximun concurrent ...
  • sql server 查看数据库用户连接数, 代码整理
  • 如何查看SQL SERVER数据库当前连接数

    千次阅读 2010-04-18 12:32:00
    如何查看SQL SERVER数据库当前连接数1.通过管理工具开始->管理工具 ->性能(或者是运行里面输入 mmc)然后通过添加计数器添加 SQL 的常用统计然后在下面列出的项目里面选择用户连接就可以时时查询到数据库的连接数了...
  • 前言:出现这种问题使因为程序对connection的回收出现了问题,是因为你的代码出出现了过多new connection...在sqlserver中查看链接的Sql select * from sysprocesses where dbid= db_id('数据库名') 如果在项目...
  • sqlserver连接池及查看连接数相关

    万次阅读 2017-05-09 14:37:44
    sqlserver连接池及查看连接数相关 连接超时时间已到。在尝试使用预登录握手确认时超过了此超时时间。这可能是因为预登录握手失败或服务器未能及时响应。 尝试连接到 Principle 服务器时发生了此故障问题
  • 查询 SQL Server 当前连接数

    千次阅读 2011-06-24 22:41:00
    1.通过系统的“性能”来查看:开始->管理工具->性能(或者是运行里面输入 mmc)然后通过添加计数器添加 SQL 的常用统计 然后在下面列出的项目里面选择用户连接就可以时时查询到sql server数据库连接数了。...
  • SQL SERVER 理论上有32767个逻辑连接SQL SERVER根据系统自行调配连接池。 首先 ,操作系统的用户:即同时通过网络连接到这台电脑上面的用户限制,以5用户操作系统,搭建的文件服务器为例,去同时访问这个文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 222,220
精华内容 88,888
关键字:

serversql最大连接数