sql连接数
⑴ 如何判断sql用户连接数
最近有些客户提出想对SQL Server的连接数进行一些监听。总结了以下一些方法:
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 2008 R2 标准版(25用户)最大并发连接数是多少及支持多少客户端同时访问
SQL Server 2008支持并发的连接数分两种情况:
1)不启用连接池
当创建到101个连接的时候,就无法再创建新连接了。也就是说,如果连接字符串不做任何处理,我们的程序只能够跟SQLServer建立101个连接。
2)启用连接池
在连接字符串中加入代码:
Pooling=true;Max Pool Size=40000;Min Pool Size=0;
微软在MSDN上对最大连接数的定义是:“默认是0,代表不限制,但最大连接数是32767。
SQL Server支持同时访问的客户端数量:
开发版、速成版有客户连接限制,一般是10个连接。企业版、标准版没有限制,硬件能支持多少就能支持多少。
(2)sql连接数扩展阅读
sql server 2008 R2 连接数过高的解决办法:
由于公司最近两个Web站点做了负载均衡,但是缓存机制仍然是 Asp.Net 自带的缓存,这样就导致了每台Web 服务器内存中都有一份缓存,直接导致了多次请求DB数据库,造成了DB连接数过高。
由于是两个较大的站点两台服务器做负载均衡(负载平衡),所以,DB 的连接数也飙升,几乎翻了3倍。
公司DB服务器用的是 Sql Server 2008 R2 ,并且DB服务器配置是相当的强悍的,连接数一度冲击到740,真是让人惊叹不已。虽然链接数强悍,但是前台访问的页面 超时的 也是茫茫多,没办法,只能采用了紧急处理:
1、加大程序中的缓存,特别是页面头部加上 OutPutCache 缓存。
2、用上镜像的备份DB服务器,把2个站点的DB链接改到了镜像的DB,这台镜像DB和现在主DB是不在同一个机房的,目标就是容灾和在高流量的情况下快速切换
⑶ 如何查看SQL SERVER数据库当前连接数
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*fromsysprocesseswheredbidin(='MyDatabase')
将所有连接MyDatabase这个数据库的连接记录都求出来。
sysprocesses这个表记录所以连接到SQL
SERVER数据库的连接。
3.通过系统的存储过程来查找
SP_WHO'UserName'
UserName
是当然登陆Sql的用户名,一般程序里面都会使用一个UserName来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。
如果不写UserName,那么返回的就是所有的连接。
⑷ SQL连接数是什么
60是指并发数,一秒中最多有60个连接。CPU限制就不好说了,要看那台物理主机的CPU性能。
如果换算成访问量,那么就要计算,如果你的每一个页面的连接一次数据库,一次10毫秒,那么一秒你的vps就可以支持6000个pv,如果一次要耗费100毫秒,那么就只能支持600个了。
建议:
1、程序要优化,尽量减少数据库连接,用完马上释放。
2、只读必要的数据。
3、用缓存,asp.net的缓存机制非常好,可以大大降低对数据库的访问次数。当然如果有必要,也可以把部分页面换成静态的。
...
⑸ sql+server+如何查看数据库连接数
查询数据库当前进程的连接数:
selectcount(*)fromv$process;
查看数据库当前会话的连接数:
selectcount(*)fromv$session;
查看数据库的并发连接数:
selectcount(*)fromv$sessionwherestatus='ACTIVE';
查看当前数据库建立的会话情况:
selectsid,serial#,username,program,machine,statusfromv$session;
查询数据库允许的最大连接数:
selectvaluefromv$parameterwherename='processes';
或者:
showparameterprocesses;
查询所有数据库的连接数
selectschemaname,count(*)fromv$sessiongroupbyschemaname;
查询终端用户使用数据库的连接情况。
selectosuser,schemaname,count(*)fromv$sessiongroupbyschemaname,osuser;
#查看当前不为空的连接
select*fromv$sessionwhereusernameisnotnull
#查看不同用户的连接数
selectusername,count(username)fromv$
⑹ SQL SERVER 2000最大连接数是多少
SQL server 2000的最大连接数32767。
可以在sql企业管理器中设置连接数限制
在sql企业管理器中,选中 server组,点击鼠标右键,选择 属性。
红框位置可以设置连接数:
⑺ 如何查询sql数据库设置的连接数
use
master
go
select
@@max_connections
或者是在管理器里找到组属性,连接选项卡里面