【问题标题】:How to list all connections in SQL Server?如何列出 SQL Server 中的所有连接?
【发布时间】:2020-10-25 10:49:12
【问题描述】:

我正在使用这个版本的 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) 

我运行查询

select @@CONNECTIONS;

结果

1629

我想列出所有连接(在本例中为 1629),看看幕后是什么,如何做到这一点?

【问题讨论】:

标签: sql sql-server tsql sql-server-2019


【解决方案1】:

The @@CONNECTIONS documentation states:

返回尝试连接的数量 - 成功和 不成功 - 因为 SQL Server 上次启动。

虽然 SQL Server DMV 会显示当前连接,但这些不会包括过去连接的详细信息或失败的连接尝试。为了获取成功和失败登录的历史详细信息,您可以使用SQL Server Audit 或使用文件目标创建扩展事件跟踪。下面是跟踪方法的示例 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】:

    您可以尝试以下方法:

    SELECT DB_NAME(dbid) AS DBName,
    COUNT(dbid) AS NumberOfConnections,
    loginame
    FROM    sys.sysprocesses
    GROUP BY dbid, loginame
    ORDER BY DB_NAME(dbid)
    

    【讨论】:

    • 它无法列出我提到的数千个连接。我在我的电脑上试过了。让我们看看user-images.githubusercontent.com/1328316/…
    • @DoNhuVy,根据the documentation@@CONNECTIONS 返回自上次启动 SQL Server 以来尝试的连接数(成功和不成功)。历史细节无法通过 DMV 获得。如果需要该信息,则需要创建跟踪。
    • @Foster90, sys.sysprocesses 是 SQL 2005 版本不推荐使用的视图,在现代 SQL Server 版本中应避免使用。
    • @DanGuzman 什么是DMV?让我们发布你的答案,我会接受的。
    • @DoNhuVy,DMV 是 Dynamic Management Views
    【解决方案3】:

    您可以使用以下查询找出活动连接 -

    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;
    

    【讨论】:

    • 它无法列出所提到的所有足够的数千个连接。 user-images.githubusercontent.com/1328316/…
    • 此函数返回自上次启动 SQL Server 以来尝试的连接数(成功和不成功)。 SQL Server 没有存储有关这些连接的所有信息......并且此查询返回活动连接的编号:)
    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2010-11-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多