sys.dm_exec_connections (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Restituisce informazioni sulle connessioni stabilite a questa istanza del motore di database e i dettagli di ogni connessione. Restituisce informazioni di connessione a livello di server per SQL Server e Istanza gestita di SQL di Azure. Restituisce le informazioni di connessione per il database corrente in database SQL di Azure. Restituisce informazioni di connessione per tutti i database nello stesso pool elastico per i database nei pool elastici in database SQL di Azure.
Nota
Per chiamare questa operazione dal pool SQL dedicato in Azure Synapse Analytics o dal sistema della piattaforma di analisi (PDW), vedere sys.dm_pdw_exec_connections (Transact-SQL). Per il pool SQL serverless o Microsoft Fabric usare sys.dm_exec_connections
.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
session_id | int | Identifica la sessione associata alla connessione Ammette i valori Null. |
most_recent_session_id | int | Rappresenta l'ID di sessione della richiesta più recente associata alla connessione. Le connessioni SOAP possono essere riutilizzate da un'altra sessione. Nullable. |
connect_time | datetime | Timestamp relativo al momento in cui è stata stabilita la connessione. Non ammette i valori Null. |
net_transport | nvarchar(40) | Quando si usa MARS, restituisce Session per ogni connessione aggiuntiva associata a una sessione logica MARS. Nota: descrive il protocollo di trasporto fisico utilizzato da questa connessione. Non ammette i valori Null. |
protocol_type | nvarchar(40) | Specifica il tipo di protocollo del payload. Attualmente distingue tra TDS ("TSQL"), "SOAP" e "Mirroring del database". Ammette i valori Null. |
protocol_version | int | Versione del protocollo di accesso ai dati associato a questa connessione. Ammette i valori Null. |
endpoint_id | int | Identificatore che descrive il tipo di connessione. Può endpoint_id essere usato per eseguire una query sulla sys.endpoints vista. Ammette i valori Null. |
encrypt_option | nvarchar(40) | Valore booleano che specifica se per la connessione è abilitata la crittografia. Non ammette i valori Null. Per gli endpoint di mirroring HADR, questa colonna restituisce sempre FALSE. Usare invece la sys.database_mirroring_endpoints DMV per verificare se le connessioni a un endpoint di mirroring HADR sono crittografate. |
auth_scheme | nvarchar(40) | Specifica lo schema di autenticazione di SQL Server/Windows usato con questa connessione. Non ammette i valori Null. |
node_affinity | smallint | Identifica il nodo di memoria con cui la connessione dispone di affinità. Non ammette i valori Null. |
num_reads | int | Numero di letture di byte che si sono verificate durante questa connessione. Ammette i valori Null. |
num_writes | int | Numero di scritture di byte che si sono verificate durante questa connessione. Ammette i valori Null. |
last_read | datetime | Timestamp dell'ultima lettura eseguita sulla connessione. Ammette i valori Null. |
last_write | datetime | Timestamp dell'ultima scrittura eseguita sulla connessione. Ammette i valori Null. |
net_packet_size | int | Dimensioni dei pacchetti di rete utilizzate per il trasferimento di informazioni e dati. Ammette i valori Null. |
client_net_address | varchar(48) | Indirizzo host del client che si connette al server. Ammette i valori Null. |
client_tcp_port | int | Numero di porta del computer client associato alla connessione. Ammette i valori Null. In database SQL di Azure questa colonna restituisce sempre NULL. |
local_net_address | varchar(48) | Rappresenta l'indirizzo IP del server di destinazione della connessione. Disponibile solo per le connessioni che utilizzano il provider del trasporto TCP. Ammette i valori Null. In database SQL di Azure questa colonna restituisce sempre NULL. |
local_tcp_port | int | Rappresenta la porta TCP del server che verrebbe impiegata in caso di utilizzo del trasporto TCP per la connessione. Ammette i valori Null. In database SQL di Azure questa colonna restituisce sempre NULL. |
connection_id | uniqueidentifier | Identifica in modo univoco ogni connessione. Non ammette i valori Null. |
parent_connection_id | uniqueidentifier | Identifica la connessione primaria utilizzata dalla sessione MARS. Ammette i valori Null. |
most_recent_sql_handle | varbinary(64) | Handle SQL dell'ultima richiesta eseguita sulla connessione. La most_recent_sql_handle colonna è sempre sincronizzata con la most_recent_session_id colonna. Ammette i valori Null. |
pdw_node_id | int | Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
Autorizzazioni
In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE
.
In database SQL di Azure obiettivi di servizio Basic, S0 e S1 e per i database nei pool elastici, è necessario l'account amministratore del server, l'account amministratore di Microsoft Entra o l'appartenenza al ruolo del ##MS_ServerStateReader##
server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE
per il database o l'adesione ruolo del server ##MS_ServerStateReader##
.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
Join fisici
Cardinalità delle relazioni
In genere, per ogni riga in sys.dm_exec_connections
è presente una singola riga corrispondente in sys.dm_exec_sessions
. Tuttavia, in alcuni casi, ad esempio sessioni interne di sistema o procedure di attivazione di Service Broker , potrebbe essere presente una riga in sys.dm_exec_sessions
senza una riga corrispondente in sys.dm_exec_connections
.
Quando si usa MARS, possono essere presenti più righe in sys.dm_exec_connections
per una riga in sys.dm_exec_sessions
, una riga per la connessione padre e una riga per ogni sessione logica MARS. Le ultime righe possono essere identificate dal valore nella net_transport
colonna impostata su Session. Per queste connessioni, il valore nella connection_id
colonna di sys.dm_exec_connections
corrisponde al valore nella connection_id
colonna di sys.dm_exec_requests
per le richieste MARS in corso.
Esempi
La query Transact-SQL seguente raccoglie informazioni sulla connessione di una query.
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;
Passaggi successivi
Altre informazioni sui concetti correlati sono disponibili negli articoli seguenti: