如何查找并发SQL Server连接数

时间:2012-12-18 20:34:28

标签: sql sql-server connection

我的SQL Server达到了并发连接的最大限制。我有很多不同的服务器和服务同时连接到一个SQL Server。

我确实找到了另一个似乎有用的查询:

SELECT DB_NAME(dbid) AS DBName,
       COUNT(dbid)   AS NumberOfConnections,
       loginame      AS LoginName,
       nt_domain     AS NT_Domain,
       nt_username   AS NT_UserName,
       hostname      AS HostName
FROM   sys.sysprocesses
WHERE  dbid > 0
GROUP  BY dbid,
          hostname,
          loginame,
          nt_domain,
          nt_username
ORDER  BY NumberOfConnections DESC;

然而,这给了我很好的连接数。我如何进一步挖掘这个以找到每个连接以及他们正在做什么动作?

2 个答案:

答案 0 :(得分:3)

sql命令" sp_who"它提供有关Microsoft SQL Server数据库引擎实例中当前用户,会话和进程的信息(MSDN)从这里,您应该能够将结果发送到临时表并按servername对它们进行分组。 / p>

如下......

CREATE TABLE #tbl (
      spid      int
    , ecid      int
    , status    varchar(50)
    , loginame  varchar(255)
    , hostname  varchar(255)
    , blk       varchar(50)
    , dbname    varchar(255)
    , cmd       varchar(255)
    , request_id varchar(255)
    )
GO

INSERT INTO #tbl EXEC sp_who

SELECT COUNT(0), hostname FROM #tbl group by hostname

DROP TABLE #tbl
GO

答案 1 :(得分:2)

您是在谈论如何检查到达SQL Server实例的连接?一些DOS命令怎么样?尝试搜索端口1433或SQL Server进程的PID。

  

netstat -nao |找到“1433”

要查找您要查找的PID(进程标识符),只需转到任务管理器并在此处自定义进程视图,模式详细信息: http://www.mydigitallife.info/how-to-get-and-view-process-identifier-process-id-or-pid-on-windows/