sys.dm_exec_connections (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Endpoint di analisi SQL di Azure Synapse Analyticsin Microsoft FabricWarehouse 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.
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 VIEW SERVER STATE l'autorizzazione.

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'appartenenza al ruolo del ##MS_ServerStateReader## server.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW edizione Standard RVER PERFORMANCE STATE nel server.

Join fisici

Diagram of physical joins for sys.dm_exec_connections.

Cardinalità delle relazioni

Primo elemento Secondo elemento Relationship
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Uno-a-zero o uno-a-molti
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Molti-a-uno
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id Uno-a-uno

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: