sys.dm_exec_connections (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPoint de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne des informations sur les connexions établies à cette instance du moteur de base de données et les détails de chaque connexion. Retourne des informations de connexion à l’échelle du serveur pour SQL Server et Azure SQL Managed Instance. Retourne des informations de connexion pour la base de données active dans Azure SQL Database. Retourne des informations de connexion pour toutes les bases de données du même pool élastique pour les bases de données dans des pools élastiques dans Azure SQL Database.

Notes

Pour l’appeler à partir d’un pool SQL dédié dans Azure Synapse Analytics ou Analytics Platform System (PDW), consultez sys.dm_pdw_exec_connections (Transact-SQL). Pour le pool SQL serverless ou Microsoft Fabric, utilisez sys.dm_exec_connections.

Nom de la colonne Type de données Description
session_id int Identifie la session associée à cette connexion. Autorise la valeur NULL.
most_recent_session_id int Représente l'ID de session de la requête la plus récente associée à cette connexion. (Les connexions SOAP peuvent être réutilisées par une autre session.) Peut être de type Null.
connect_time datetime Cachet temporel d'établissement de la connexion. N'accepte pas la valeur NULL.
net_transport nvarchar(40) Lorsque MARS est utilisé, retourne Session pour chaque connexion supplémentaire associée à une session logique MARS.

Remarque : Décrit le protocole de transport physique utilisé par cette connexion. N'accepte pas la valeur NULL.
protocol_type nvarchar(40) Spécifie le type de protocole de la charge utile. Il fait actuellement la distinction entre TDS (« TSQL »), « SOAP » et « Database Mirroring ». Autorise la valeur NULL.
protocol_version int Version du protocole d'accès aux données associé à cette connexion. Autorise la valeur NULL.
endpoint_id int Identificateur qui décrit le type de connexion. Cet endpoint_id peut être utilisé pour interroger la vue sys.endpoints. Autorise la valeur NULL.
encrypt_option nvarchar(40) Valeur booléenne pour décrire le chiffrement activé pour cette connexion. N'accepte pas la valeur NULL.
auth_scheme nvarchar(40) Spécifie le schéma d’authentification SQL Server/Windows utilisé avec cette connexion. N'accepte pas la valeur NULL.
node_affinity smallint Identifie le nœud de mémoire avec lequel cette connexion présente une affinité. N'accepte pas la valeur NULL.
num_reads int Nombre de lectures d’octets effectuées via cette connexion. Autorise la valeur NULL.
num_writes int Nombre d’écritures d’octets effectuées via cette connexion. Autorise la valeur NULL.
last_read datetime Cachet temporel de la dernière lecture à travers cette connexion. Autorise la valeur NULL.
last_write datetime Cachet temporel de la dernière écriture à travers cette connexion. Autorise la valeur NULL.
net_packet_size int Taille du paquet réseau utilisé pour le transfert d'informations et de données. Autorise la valeur NULL.
client_net_address varchar(48) Adresse hôte du client se connectant à ce serveur. Autorise la valeur NULL.
client_tcp_port int Numéro de port sur l'ordinateur client associé à cette connexion. Autorise la valeur NULL.

Dans Azure SQL Database, cette colonne retourne toujours NULL.
local_net_address varchar(48) Représente l'adresse IP sur le serveur ciblé par cette connexion. Disponible uniquement pour les connexions utilisant le fournisseur de transport TCP. Autorise la valeur NULL.

Dans Azure SQL Database, cette colonne retourne toujours NULL.
local_tcp_port int Représente le port TCP du serveur ciblé par cette connexion s'il s'agissait d'une connexion utilisant le transport TCP. Autorise la valeur NULL.

Dans Azure SQL Database, cette colonne retourne toujours NULL.
connection_id uniqueidentifier Identifie chaque connexion de façon unique. N'accepte pas la valeur NULL.
parent_connection_id uniqueidentifier Identifie la connexion principale utilisée par la session MARS. Autorise la valeur NULL.
most_recent_sql_handle varbinary(64) Descripteur SQL de la dernière requête exécutée sur cette connexion. La colonne most_recent_sql_handle est toujours synchronisée avec la colonne most_recent_session_id. Autorise la valeur NULL.
pdw_node_id int S’applique à : Azure Synapse Analytics, Analytics Platform System (PDW)

Identificateur du nœud sur lequel cette distribution est activée.

Autorisations

Sur SQL Server et SQL Managed Instance, l’autorisation VIEW SERVER STATE est requise.

Sur les objectifs de service Azure SQL Database Basic, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d’administrateur du serveur, le compte d’administrateur Microsoft Entra ou l’appartenance au##MS_ServerStateReader## rôle serveur est nécessaire. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.

Autorisations pour SQL Server 2022 (et versions plus récentes)

Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.

Jointures physiques

Diagram of physical joins for sys.dm_exec_connections.

Cardinalités de la relation

Premier élément Deuxième élément Relation
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Un-à-zéro ou un-à-plusieurs
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Plusieurs-à-un
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id Un-à-un

Le plus souvent, pour chaque ligne de sys.dm_exec_connections, il existe une seule ligne correspondante dans sys.dm_exec_sessions. Toutefois, dans certains cas, comme les sessions internes système ou les procédures d’activation de Service Broker, il peut y avoir une ligne dans sys.dm_exec_sessions sans ligne correspondante dans sys.dm_exec_connections.

Lorsque MARS est utilisé, il peut y avoir plusieurs lignes dans sys.dm_exec_connections pour une ligne dans sys.dm_exec_sessions, une ligne pour la connexion parente et une ligne pour chaque session logique MARS. Ces dernières lignes peuvent être identifiées par la valeur de la colonne net_transport définie sur Session. Pour ces connexions, la valeur dans la colonne connection_id de sys.dm_exec_connections correspond à la valeur dans la colonne connection_id de sys.dm_exec_requests pour les requêtes MARS en cours.

Exemples

La requête Transact-SQL suivante collecte des informations sur la propre connexion d’une requête.

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;  

Étapes suivantes

En savoir plus sur les concepts associés dans les articles suivants :