文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络编程MSSQL获取SQL Server的当前连接数
精品广告
推荐TOP10
·SQL Server连接失败错误故障的分析与排除
·SQL server 2005安装问题汇总
·Sql server优化50法
·SQL Server 2005 中的分区表和索引
·SQL Server不存在或访问被拒绝 问题的解决
·在SQL Server 2000里设置和使用数据库复制
·sql 经典语句
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束SQL注入隐患3招
阅读TOP10
·sql server日期时间函数
·用SQL一次插入多条数据
·SQL Server安装文件挂起错误解决办法
·SQL Server不存在或访问被拒绝 问题的解决
·在SQL Server 2000里设置和使用数据库复制
·SQL Server 2005 Express Edition安装步骤详解
·在sqlserver2005中安装sql server 2000的示例数据库northwind
·sql 经典语句
·解决方案 用户 sa 登录失败
·SQL Server 2005 中的分区表和索引

获取SQL Server的当前连接数

日期:2008年9月29日 作者: 查看:[大字体 中字体 小字体]


首先声明:这个问题我没有解决 当网友问到我这个问题时,我也还以为很简单,以为SQL Server应该提供了对应的系统变量什么的.但是到目前为止,我还没有得到一个比较好的解决方案.可能很简单,,只不过我不知道罢了.希望如此..

下面我说说相关的知识吧.希望大家可以给出一个比较好的方法.

这里有几个与之相关的概念.

SQL Server提供了一些函数返回连接值(这里可不是当前连接数哟!),个人觉得,很容易产生误解.

系统变量

@@CONNECTIONS 返回自上次启动 Microsoft® SQL Server™ 以来连接或试图连接的次数。

@@MAX_CONNECTIONS 返回 Microsoft® SQL Server™ 上允许的同时用户连接的最大数。返回的数不必为当前配置的数值。

 

系统存储过程

SP_WHO

提供关于当前 Microsoft® SQL Server™ 用户和进程的信息。可以筛选返回的信息,以便只返回那些不是空闲的进程。

列出所有活动的用户:SP_WHO ‘active’

列出某个特定用户的信息:SP_WHO ‘sa’

 

系统表

Sysprocesses

 sysprocesses 表中保存关于运行在 Microsoft® SQL Server™ 上的进程的信息。这些进程可以是客户端进程或系统进程。sysprocesses 只存储在 master 数据库中。

Sysperfinfo

包括一个 Microsoft® SQL Server™ 表示法的内部性能计数器,可通过 Windows NT 性能监视器显示.

 

有人提议说为了获取SQL Server的当前连接数:使用如下SQL:

SELECT COUNT(*) AS CONNECTIONS FROM master..sysprocesses


个人认为不对,看看.sysprocesses的login_time列就可看出.

另外一个方面是进程不能和连接相提并论,他们是一对一的关系吗,也就是说一个进程就是一个连接?一个连接应该有多个进程的,所以连接和进程之间的关系应该是1:n的.


因为sysprocesses列出的进程包含了系统进程和用户进程,为了得到用户连接,可以使用如下SQL:

SELECT cntr_value AS User_Connections FROM master..sysperfinfo as p
WHERE p.object_name = 'SQLServer:General Statistics' And p.counter_name = 'User Connections'

个人还是认为不对,因为它是一个计数器,可能会累加的.

还有一种方案是利用如下SQL:

select connectnum=count(distinct net_address)-1 from master..sysprocesses

理由是net_address是访问者机器的网卡值,这个总该是唯一的吧.但是看起来得到的是所有时间内的连接数.

希望大家可以给出自己的解决方案.这个问题解决了,相信会有很大的用途.


http://confach.cnblogs.com/archive/2006/05/31/414156.html



上一篇:ASP.NET实现匿名访问控制

下一篇:用SQL批量插入数据


相关软件: 相关文章:
·图片保存到数据库和从数据库读取图片并显示(c#)
·asp.net结合html,javascript实现无刷新跨域数据提交
·打造一个通用ASP.NET数据分页控件
·DOS常用命令参数的中文详解
·18条CPU参数详解
·sql server日期时间函数
·用SQL一次插入多条数据

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号