获取sqlserver中数据库当前连接数
如何查看SQL SERVER数据库当前连接数? SELECT * FROM [ Master ] . dbo SYSPROCESSES WHERE DBID IN ( SYSDATABASES NAME = ' DBName ' ) DBName 是需要查看的数据库,然后查询出来的行数,就是当前的连接数。不过里面还有一些别的状态可以做参考用。? 将所有连接MyDatabase这个数据库的连接记录都求出来。? UserName 是当然登陆Sql的用户名,一般程序里面都会使用一个UserName来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。? http://blog.csdn.net/lihan6415151528/article/details/4545000 首先声明:这个问题我没有解决 当网友问到我这个问题时,我也还以为很简单,以为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
另外一个方面是进程不能和连接相提并论,他们是一对一的关系吗,也就是说一个进程就是一个连接?一个连接应该有多个进程的,所以连接和进程之间的关系应该是1:n的.
SELECT cntr_value AS User_Connections FROM master..sysperfinfo as p 个人还是认为不对,因为它是一个计数器,可能会累加的. 还有一种方案是利用如下SQL: select connectnum=count(distinct net_address)-1 from master..sysprocesses 理由是net_address是访问者机器的网卡值,这个总该是唯一的吧.但是看起来得到的是所有时间内的连接数. 希望大家可以给出自己的解决方案.这个问题解决了,相信会有很大的用途. http://www.cnblogs.com/confach/archive/2006/05/31/414156.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – SQL Server 2008索引 – 查询的性能提升与IN
- sql-server-2008 – SQL Server 2008 SELECT * FROM @varia
- SqlServer判断(数据库,表,视图,存储过程等)是否存在
- mssqlserver字符串日期互相转换
- SQLServer、MySQL、Oracle 中的分页查询
- 在SQLServer2000中恢复Master数据库
- ADO.NET数据连接池剖析
- arcsde service(esri_sde)服务启动后又停止
- .net – TableAdapter配置向导不喜欢SP中的临时表
- 将CSV导入SQL Server(包括自动创建表)