sys.dm_exec_connections (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse

Gibt detaillierte Informationen zu den Verbindungen zurück, die mit dieser Instanz der Datenbank-Engine hergestellt wurden. Gibt serverweite Verbindungsinformationen für SQL Server und Azure SQL Managed Instance zurück. Gibt Verbindungsinformationen für die aktuelle Datenbank in Azure SQL-Datenbank zurück. Gibt Verbindungsinformationen für alle Datenbanken im selben Pool für elastische Datenbanken in Azure SQL-Datenbank zurück.

Hinweis

Informationen zum Aufrufen aus dem dedizierten SQL-Pool in Azure Synapse Analytics oder Analytics Platform System (PDW) finden Sie unter sys.dm_pdw_exec_connections (Transact-SQL). Verwenden Sie sys.dm_exec_connections für serverlose SQL-Pools oder Microsoft Fabric.

Spaltenname Datentyp BESCHREIBUNG
session_id int Identifiziert die Sitzung, die dieser Verbindung zugeordnet ist. Lässt NULL-Werte zu.
most_recent_session_id int Stellt die Sitzungs-ID für die letzte Anforderung dar, die dieser Verbindung zugeordnet ist. (SOAP-Verbindungen können von einer anderen Sitzung wiederverwendet werden.) Lässt Nullwerte zu.
connect_time datetime Zeitstempel, der angibt, wann die Verbindung eingerichtet wurde. Lässt keine NULL-Werte zu.
net_transport nvarchar(40) Gibt bei Verwendung von MARS die Sitzung für jede zusätzliche Verbindung zurück, die einer logischen MARS-Sitzung zugeordnet ist.

Hinweis: Beschreibt das physische Transportprotokoll, das von dieser Verbindung verwendet wird. Lässt keine NULL-Werte zu.
protocol_type nvarchar(40) Gibt den Protokolltyp der Nutzlast an. Derzeit wird zwischen TDS („TSQL“), „SOAP“ und „Datenbankspiegelung“ unterschieden. Lässt NULL-Werte zu.
protocol_version int Die Version des Datenzugriffsprotokolls, das dieser Verbindung zugeordnet ist. Lässt NULL-Werte zu.
endpoint_id int Ein Bezeichner, der beschreibt, um welchen Verbindungstyp es sich handelt. Mit dieser endpoint_id lässt sich die Sicht sys.endpoints abfragen. Lässt NULL-Werte zu.
encrypt_option nvarchar(40) Boolescher Wert, der angibt, ob die Verschlüsselung für diese Verbindung aktiviert ist. Lässt keine NULL-Werte zu.

Bei HADR-Spiegelungsendpunkten gibt diese Spalte immer FALSE zurück. Verwenden Sie stattdessen DMV sys.database_mirroring_endpoints , um zu überprüfen, ob Verbindungen mit einem HADR-Spiegelungsendpunkt verschlüsselt sind.
auth_scheme nvarchar(40) Gibt das SQL Server-/Windows-Authentifizierungsschema an, das mit dieser Verbindung verwendet wird. Lässt keine NULL-Werte zu.
node_afinity smallint Identifiziert den Speicherknoten, zu dem diese Verbindung eine Affinität besitzt. Lässt keine NULL-Werte zu.
num_reads int Die Anzahl von Bytelesevorgängen, die über diese Verbindung erfolgt sind. Lässt NULL-Werte zu.
num_writes int Die Anzahl von Byteschreibvorgängen, die über diese Verbindung erfolgt sind. Lässt NULL-Werte zu.
last_read datetime Zeitstempel für den letzten Lesevorgang, der über diese Verbindung erfolgt ist. Lässt NULL-Werte zu.
last_write datetime Zeitstempel für den letzten Schreibvorgang, der über diese Verbindung erfolgt ist. Lässt NULL-Werte zu.
net_packet_size int Netzwerkpaketgröße, die für die Informations- und Datenübertragung verwendet wird. Lässt NULL-Werte zu.
client_net_address varchar(48) Hostadresse des Clients, der die Verbindung mit diesem Server herstellt. Lässt NULL-Werte zu.
client_tcp_port int Portnummer auf dem Clientcomputer, die dieser Verbindung zugeordnet ist. Lässt NULL-Werte zu.

In Azure SQL Datenbank gibt diese Spalte immer NULL zurück.
local_net_address varchar(48) Stellt die IP-Adresse auf dem Server dar, die die Zieladresse dieser Verbindung ist. Ist nur für Verbindungen verfügbar, die den TCP-Transportanbieter verwenden. Lässt NULL-Werte zu.

In Azure SQL Datenbank gibt diese Spalte immer NULL zurück.
local_tcp_port int Stellt den Server-TCP-Port dar, der der Zielport dieser Verbindung ist, falls die Verbindung den TCP-Transport verwendet. Lässt NULL-Werte zu.

In Azure SQL Datenbank gibt diese Spalte immer NULL zurück.
connection_id uniqueidentifier Dient zur eindeutigen Identifizierung jeder Verbindung. Lässt keine NULL-Werte zu.
parent_connection_id uniqueidentifier Identifiziert die primäre Verbindung, die von der MARS-Sitzung verwendet wird. Lässt NULL-Werte zu.
most_recent_sql_handle varbinary(64) Das SQL-Handle der letzten Anforderung, die über diese Verbindung ausgeführt wurde. Die most_recent_sql_handle-Spalte wird immer mit der most_recent_session_id-Spalte synchronisiert. Lässt NULL-Werte zu.
pdw_node_id int Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet.

Berechtigungen

Für SQL Server und SQL Managed Instance ist die VIEW SERVER STATE-Berechtigung erforderlich.

Für Azure SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto, das Microsoft Entra-Administratorkonto oder die Mitgliedschaft in der ##MS_ServerStateReader## Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##-Serverrolle erforderlich.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Physische Joins

Abbildung: physische Joins für sys.dm_exec_connections

Kardinalitäten von Beziehungen

Erstes Element Zweites Element Beziehung
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id 1:0 oder 1:viele
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id n:1
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id 1:1

Meist gibt es für jede Zeile in sys.dm_exec_connections eine einzige entsprechende Zeile in sys.dm_exec_sessions. In einigen Fällen wie beispielsweise bei internen Systemsitzungen oder Service Broker-Aktivierungsprozeduren kann eine Zeile in sys.dm_exec_sessions ohne entsprechende Zeile in sys.dm_exec_connections vorhanden sein.

Bei Verwendung von MARS können mehrere Zeilen in sys.dm_exec_connections für eine Zeile in sys.dm_exec_sessions, eine Zeile für die übergeordnete Verbindung und eine Zeile für jede logische MARS-Sitzung vorhanden sein. Die letztgenannten Zeilen lassen sich daran erkennen, dass der Wert in der Spalte net_transport auf Session festgelegt ist. Bei diesen Verbindungen entspricht der Wert in der Spalte connection_id von sys.dm_exec_connections dem Wert in der Spalte connection_id von sys.dm_exec_requests für in Verarbeitung befindliche MARS-Anforderungen.

Beispiele

Die folgende Transact-SQL-Abfrage sammelt Informationen zur Verbindung einer Abfrage.

SELECT   
    c.session_id, c.net_transport, c.encrypt_option,   
    c.auth_scheme, s.host_name, s.program_name,   
    s.client_interface_name, s.login_name, s.nt_domain,   
    s.nt_user_name, s.original_login_name, c.connect_time,   
    s.login_time   
FROM sys.dm_exec_connections AS c  
JOIN sys.dm_exec_sessions AS s  
    ON c.session_id = s.session_id  
WHERE c.session_id = @@SPID;  

Nächste Schritte

Weitere Informationen zu verwandten Konzepten finden Sie in den folgenden Artikeln: