我的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;
然而,这给了我很好的连接数。我如何进一步挖掘这个以找到每个连接以及他们正在做什么动作?
答案 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/