7

我有一个达到并发连接最大限制的 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;

但是,这给了我很好的连接数。我如何进一步深入挖掘以查看每个连接以及它们正在执行的操作?

4

2 回答 2

4

sql 命令“sp_who”提供有关 Microsoft SQL Server 数据库引擎 ( MSDN ) 实例中当前用户、会话和进程的信息 从这里,您应该能够将结果发送到临时表并按服务器名分组.

比如下面...

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
于 2012-12-18T20:49:56.463 回答
2

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

网络统计-nao | 找到“1433”

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

于 2012-12-18T20:53:49.933 回答