扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、获取SQL Server允许同时用户连接的最大数
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了三水免费建站欢迎大家使用!
SELECT @@MAX_CONNECTIONS
2、获取当前指定数据库的连接信息
SELECT * FROM master.dbo.sysprocesses WHERE dbid IN
(
SELECT dbid FROM master.dbo.sysdatabases
WHERE NAME='YourDataBaseName'
)
--根据需要更改YourDataBaseName
SELECT * FROM master.dbo.sysprocesses WHERE DB_NAME(dbid) = 'YourDataBaseName'
3、获取当前SQL服务器所有的连接详细信息
SELECT * FROM sysprocesses
以上查询结果包含了:系统进程和用户进程。
如果只是想查用户进程的话则需采用下面的方法
4、获取自上次启动 SQL Server服务 以来连接或试图连接的次数
SELECT @@CONNECTIONS
这个刚开始会有点误解,认为是当前SQL Server服务器当前所有的连接数。需要重点注意。
打开 SQL Server Management Studio Express 使用超级用户登录。
输入如下指令:
exec sp_configure 'show advanced options', 1
exec sp_configure 'user connections', 100
select value from master.dbo.sysconfigures where [config]=103
--第二次设置用户并发连接200
exec sp_configure 'show advanced options', 1
exec sp_configure 'user connections', 200
select value from master.dbo.sysconfigures where [config]=103
返回结果
100
200
也就是说 你设置成100 就100,设置成200就200, 最大是 32767, 设置成 0 就是32767.
0 表示不受限。但是 sql检索是返回0的。
---
以上只是理论:
实际上一般的小型服务器 能并行 60 就相当了不起了。
至强八核的CPU ,8G服务器内存 ,2003 系统 ,设置成 0 ,采用压力测试了一番 最高也就 104上下。跟操作系统和硬件配置有关系的。
1.通过管理工具
开始-管理工具-性能(或者是运行里面输入
mmc)然后通过添加计数器添加
SQL
的常用统计
然后在下面列出的项目里面选择用户连接就可以时时查询到数据库的连接数了。不过此方法的话需要有访问那台计算机的权限,就是要通过Windows账户登陆进去才可以添加此计数器。
2.通过系统表查询
SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT
[DBID]
FROM
[Master].[dbo].[SYSDATABASES]
WHERE
NAME='DBName'
)
DBName
是需要查看的数据库,然后查询出来的行数,就是当前的连接数。不过里面还有一些别的状态可以做参考用。
例如:连到master这个数据库写如下语句
select * from sysprocesses where dbid in (select dbid from sysdatabases where name='MyDatabase')
将所有连接MyDatabase这个数据库的连接记录都求出来。
sysprocesses这个表记录所以连接到SQL
SERVER数据库的连接。
3.通过系统的存储过程来查找
SP_WHO 'UserName'
UserName
是当然登陆Sql的用户名,一般程序里面都会使用一个UserName来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。
如果不写UserName,那么返回的就是所有的连接。
1)不启用连接池
当创建到101个连接的时候,就无法再创建新连接了。也就是说,如果连接字符串不做任何处理,我们的程序只能够跟SQLServer建立101个连接。
2)启用连接池
在连接字符串中加入代码:
Pooling=true;Max Pool Size=40000;Min Pool Size=0;
微软在MSDN上对最大连接数的定义是:“默认是0,代表不限制,但最大连接数是32767
设置最大连接数
下面的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
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流