如何查看活动的SQL Server连接?

我使用SQL Server 2008企业版。 我希望看到任何积极的SQL Server连接,所有的连接,就像从哪个IP地址,连接到数据库或某事的相关信息。

任何现有的工具来解决这个问题?

--------------解决方案-------------

您可以使用sp_who存储过程。

提供有关当前用户会话,并在Microsoft SQL Server数据库引擎实例进程的信息。 该信息可以被过滤以仅返回那些过程未空闲,属于一个特定的用户,或属于特定会话。

SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
;

sp_whosp_who2工作的伟大,但我发现下面的语句非常有用的,什么我一直在寻找:

SELECT DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame

一部分从sp_who ,你也可以使用“无证sp_who2系统存储过程,它为您提供了更详细的信息。 见http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=100099

在工具栏上点击“活动监视器”图标

或使用该工具:sqldog.com

我把这个在一起,这样你可以做的结果会查询

Declare @dbName varchar(150)
set @dbName = '[YOURDATABASENAME]'

--Total machine connections
--SELECT COUNT(dbid) as TotalConnections FROM sys.sysprocesses WHERE dbid > 0

--Available connections
DECLARE @SPWHO1 TABLE (DBName VARCHAR(1000) NULL, NoOfAvailableConnections VARCHAR(1000) NULL, LoginName VARCHAR(1000) NULL)
INSERT INTO @SPWHO1
SELECT db_name(dbid), count(dbid), loginame FROM sys.sysprocesses WHERE dbid > 0 GROUP BY dbid, loginame
SELECT * FROM @SPWHO1 WHERE DBName = @dbName

--Running connections
DECLARE @SPWHO2 TABLE (SPID VARCHAR(1000), [Status] VARCHAR(1000) NULL, [Login] VARCHAR(1000) NULL, HostName VARCHAR(1000) NULL, BlkBy VARCHAR(1000) NULL, DBName VARCHAR(1000) NULL, Command VARCHAR(1000) NULL, CPUTime VARCHAR(1000) NULL, DiskIO VARCHAR(1000) NULL, LastBatch VARCHAR(1000) NULL, ProgramName VARCHAR(1000) NULL, SPID2 VARCHAR(1000) NULL, Request VARCHAR(1000) NULL)
INSERT INTO @SPWHO2
EXEC sp_who2 'Active'
SELECT * FROM @SPWHO2 WHERE DBName = @dbName

分类:SQL 时间:2012-10-08 人气:1
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.450 (s). 10 q(s)