怎么判断sql用户连接数
怎么判断sql用户连接数,我是想在程序中控制客户端允许的连接数,比如只能连接3个,第4个客户端连接sql时,就会提示超过连接数,并且不允许再连接。
请问怎么做最方便?
[解决办法]
- SQL code
use masterselect loginame,count(0) from sysprocesses group by loginameorder by count(0) desc
[解决办法]
- SQL code
select connectnum=count(distinct net_address)-1 from master..sysprocesses
[解决办法]
- SQL code
use masterselect loginame,count(0) from sysprocesses group by loginameorder by count(0) desc
[解决办法]
我写过类似的,是用一种取巧的办法。
我们是C/S模式,如果有中间层,就在中间层处理。
数据库里建一个表,存放用户名和登录时间。
客户端每隔一段时间(如1分钟),就更新一下这个表,也就是改一下登录时间。
然后,在数据库建一个计划任务,每隔一段时间(如5分钟),就删除表中登录时间超过5分钟的(表示客户端掉线了)。
如果你要控制连接数,就读这个表,表中的记录数超过了设定,就不让连接了。
如果客户端掉线了,则需要5分钟后才能进入。
当然,上面的几个时间段可以改短一点。