Condividi tramite


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

Diagramma dei join fisici per sys.dm_exec_connections.

Cardinalità delle relazioni

Primo elemento Secondo elemento Relazione
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: