一、SQL 最大并发连接数
顾名思义,SQL 的最大并发连接数就是你可以同时拥有的数据库连接数。
不过,一般情况下,我们感觉不到这个限制,那是因为:默认安装后,最大并发连接数没有限制。如有需要,我们可以手动打开。
设置方法如下:
修改后记得重启!
SQL 的最大并发数是多少?
当我们不设置最大并发时,理论上可以无限增加,只要你的硬件支持。我用程序测试,并发链接50000很容易(见下图)。 . 当然,在实际的生产环境中,不可能允许 50000 个并发连接。是否设置最大并发数可根据实际项目情况处理。
备注:我在做并发测试的时候,不小心把最大并发连接数设置为1,重启服务器后发现无法连接。差点重装数据库。最后,停止所有非实例服务,使用命令行登录数据库进行修改。因此,即使您正在测试,也不要将其设置得太小。 . .
二、应用程序连接 SQL
参考:关于最大Sql连接数(Max Pool Size)的配置
我们在使用程序访问SQL时,一般设置链接字符串如下:
Data Source=127.0.0.1;Initial Catalog=master;User ID=sa;Password=123456;
其实上面的连接字符串中还有很多其他的参数,比如:
p>
Pooling=true
Max Pool Size=100
Min Pool Size=0
Connect Timeout=15
注意:上面列出的四个参数的默认值为15秒。
所以,上面的连接字符串等价于:
Data Source=127.0.0.1;Initial Catalog=master;User ID=sa;Password=123456;Pooling=true;Max Pool Size=100;Min Pool Size=0;Connect Timeout=15;
调试时可以观察到这些默认值:
所以,如果我们在项目中使用这个连接字符串,并且项目访问数据库的并发数比较大,就会出现以下问题:
遇到这种问题,我们需要手动把Max Pool Size调大一点,具体多少可以参考项目所能承受的并发量。
那么,上面的参数,Max Pool Size等是什么意思呢?
其实我们在访问数据库的时候使用的技术,微软提供的技术,默认开启了底层的数据库连接池,也就是默认为true。那么默认连接池中的最大连接数据是多少呢?这使得 Max Pool Size 参数。 Min Pool Size 代表连接池中的最小连接数sqlserver查看数据库连接数,代表一个连接请求的最长等待时间。
数据库连接池的一般工作原理如下:
我们在使用连接池的时候,每次创建时,.net都会从连接池中寻找空闲的连接供我们使用,如果没有找到,观察池中的连接数是否超过了的设置最大连接数。如果不超过,将打开一个新连接并返回给我们。如果超过了sqlserver查看数据库连接数,让我们等到有空闲连接返回到池中,如果我们等待超时,就会直接返回异常。另外,当我们用完连接并调用S的Close方法时,.net会自动将连接回收到池中。
暂无评论内容