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
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: