如何列出SQL Server中的所有连接?
我正在使用此版本的SQL Server如何列出SQL Server中的所有连接?,sql,sql-server,tsql,sql-server-2019,Sql,Sql Server,Tsql,Sql Server 2019,我正在使用此版本的SQL Server Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19041: ) (Hypervisor) 结
Microsoft SQL Server 2019 (RTM-GDR) (KB4517790) - 15.0.2070.41 (X64) Oct 28 2019 19:56:59 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19041: ) (Hypervisor)
结果
1629
我想列出所有连接(在本例中为1629),以查看引擎盖下有什么,如何执行此操作?您可以尝试以下操作:
SELECT DB_NAME(dbid) AS DBName,
COUNT(dbid) AS NumberOfConnections,
loginame
FROM sys.sysprocesses
GROUP BY dbid, loginame
ORDER BY DB_NAME(dbid)
您可以使用下面的查询查找活动连接-
SELECT
conn.session_id,
host_name,
program_name,
nt_domain,
login_name,
connect_time,
last_request_end_time
FROM sys.dm_exec_sessions AS sess
INNER JOIN sys.dm_exec_connections AS conn ON sess.session_id = conn.session_id;
:
返回尝试的连接数-成功和失败
不成功-自上次启动SQL Server以来
尽管SQL Server DMV将显示当前连接,但这些连接不包括过去连接的详细信息,也不包括失败的连接尝试。为了获得成功登录和失败登录的历史详细信息,您可以使用或创建带有文件目标的扩展事件跟踪。下面是跟踪方法的DDL示例:
CREATE EVENT SESSION [logins] ON SERVER
ADD EVENT sqlserver.process_login_finish
ADD TARGET package0.event_file(SET filename=N'logins')
WITH (STARTUP_STATE=ON);
这回答了你的问题吗?我尝试了这个解决方案,但它返回了2行,这不是我所期望的。我还尝试了其他答案中的其他解决方案。我也知道如何使用谷歌搜索。它不能像我提到的那样列出上千个连接。我在电脑里试过了。让我们看一看@DoNhuVy,根据,
@@CONNECTIONS
返回自SQL Server上次启动以来尝试的连接数(成功和失败)。历史详细信息无法通过DMV获得。如果需要这些信息,您需要创建一个跟踪。@Foster90,sys.sysprocesses
是SQL 2005版本中不推荐使用的视图,在moder SQL Server版本中应该避免使用。@DanGuzman什么是DMV?让我们发布你的答案,我会接受的。@DoNhuVy,DMV是。它不能列出所提到的所有和足够的数千个连接。此函数返回自SQL Server上次启动以来尝试的连接数(成功连接和失败连接)。SQL Server未存储有关这些连接的所有信息。。。此查询返回活动连接的编号:)