sys.dm_exec_connections (Transact-SQL)
S’applique à : SQL Server base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Point de terminaison analytique SQL dans Microsoft Fabric Entrepô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. Pour les points de terminaison de mise en miroir HADR, cette colonne retourne toujours FALSE. Utilisez plutôt la sys.database_mirroring_endpoints vue dynamique pour vérifier si les connexions à un point de terminaison de mise en miroir HADR sont chiffrées. |
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
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 :