Partilhar via


sys.dm_exec_connections (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Devolve informações sobre as ligações estabelecidas a esta instância do motor da base de dados e os detalhes de cada ligação. Devolve informação de ligação a nível de servidor para SQL Server e Azure SQL Managed Instance. Devolve informação de ligação para a base de dados atual na Azure SQL Database. Devolve informação de ligação para todas as bases de dados no mesmo pool elástico para bases de dados em pools elásticos no Azure SQL Database.

Observação

Para chamar isto a partir de pool SQL dedicado no Azure Synapse Analytics ou Analytics Platform System (PDW), veja sys.dm_pdw_exec_connections (Transact-SQL). Para pool SQL serverless ou Microsoft Fabric use sys.dm_exec_connections.

Nome da coluna Tipo de dados Description
identificador_de_sessão int Identifica a sessão associada a esta ligação. É anulável.
most_recent_session_id int Representa o ID da sessão para o pedido mais recente associado a esta ligação. (As ligações SOAP podem ser reutilizadas por outra sessão.) É anulável.
connect_time datetime Carimbo temporal em que a ligação foi estabelecida. Não é anulável.
net_transport Nvarchar (40) Quando o MARS é utilizado, devolve Session para cada ligação adicional associada a uma sessão lógica MARS.

Nota: Descreve o protocolo físico de transporte utilizado por esta ligação. Não é anulável.
protocol_type Nvarchar (40) Especifica o tipo de protocolo da carga útil. Atualmente, distingue entre TDS ("TSQL"), "SOAP" e "Espelhamento de Base de Dados". É anulável.
protocol_version int Versão do protocolo de acesso a dados associada a esta ligação. É anulável.
endpoint_id int Um identificador que descreve que tipo de ligação é. Isto endpoint_id pode ser usado para consultar a sys.endpoints vista. É anulável.
encrypt_option Nvarchar (40) Valor booleano para descrever se a encriptação está ativada para esta ligação. Não é anulável.

Para endpoints de espelhamento HADR, esta coluna devolve sempre FALSE. Use antes o sys.database_mirroring_endpoints IMT para verificar se as ligações a um endpoint de espelhamento HADR estão encriptadas.
auth_scheme Nvarchar (40) Especifica o esquema de autenticação SQL Server/Windows usado com esta ligação. Não é anulável.
node_affinity smallint Identifica o nó de memória ao qual esta ligação tem afinidade. Não é anulável.
num_reads int Número de leituras de bytes que ocorreram nesta ligação. É anulável.
num_writes int Número de escritas em bytes que ocorreram nesta ligação. É anulável.
last_read datetime Carimbo temporal em que a última leitura ocorreu através desta ligação. É anulável.
last_write datetime Carimbo temporal em que ocorreu a última escrita nesta ligação. É anulável.
net_packet_size int Tamanho do pacote de rede usado para transferência de informação e dados. É anulável.
client_net_address Varchar (48) Endereço do host do cliente que se liga a este servidor. É anulável.
client_tcp_port int Número de porta no computador cliente associado a esta ligação. É anulável.

No Azure SQL Database, esta coluna devolve sempre NULL.
local_net_address Varchar (48) Representa o endereço IP do servidor que esta ligação visou. Disponível apenas para ligações que utilizem o fornecedor de transporte TCP. É anulável.

No Azure SQL Database, esta coluna devolve sempre NULL.
local_tcp_port int Representa a porta TCP do servidor que esta ligação visava se fosse uma ligação usando o transporte TCP. É anulável.

No Azure SQL Database, esta coluna devolve sempre NULL.
connection_id uniqueidentifier Identifica cada conexão exclusivamente. Não é anulável.
parent_connection_id uniqueidentifier Identifica a ligação principal que a sessão MARS está a usar. É anulável.
most_recent_sql_handle varbinary(64) O handle SQL do último pedido foi executado nesta ligação. A most_recent_sql_handle coluna está sempre sincronizada com a most_recent_session_id coluna. É anulável.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que esta distribuição se encontra.

Permissions

No SQL Server e na Instância Gerenciada do SQL, requer VIEW SERVER STATE permissão.

Nos objetivos de serviço do Banco de Dados SQL do Azure Basic, S0 e S1 , e para bancos de dados em pools elásticos, é necessária a conta de administrador do servidor , a conta de administrador do Microsoft Entra ou a associação à ##MS_ServerStateReader##função de servidor . Em todos os outros objetivos de serviço do Banco de dados SQL, é necessária a permissão VIEW DATABASE STATE no banco de dados ou a associação à função de servidor ##MS_ServerStateReader##.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Ligações físicas

Diagrama das uniões físicas para sys.dm_exec_connections.

Cardinalidades de relacionamento

Primeiro elemento Segundo elemento Relacionamento
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Um para zero ou um para muitos
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Muitos para um
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id One-to-one

Mais frequentemente, para cada linha em sys.dm_exec_connections existe uma única linha correspondente em sys.dm_exec_sessions. No entanto, em alguns casos, como sessões internas do sistema ou procedimentos de ativação do Service Broker , pode haver uma linha em sys.dm_exec_sessions sem uma linha correspondente em sys.dm_exec_connections.

Quando o MARS é utilizado, pode haver várias linhas para sys.dm_exec_connections uma linha em sys.dm_exec_sessions, uma linha para a ligação pai e uma linha para cada sessão lógica do MARS. Estas últimas linhas podem ser identificadas pelo valor na net_transport coluna definido como Sessão. Para estas ligações, o valor na connection_id coluna de sys.dm_exec_connections corresponde ao valor na connection_id coluna de sys.dm_exec_requests para pedidos MARS em progresso.

Examples

A seguinte Transact-SQL consulta recolhe informações sobre a ligação da própria consulta.

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;  

Próximos passos

Saiba mais sobre conceitos relacionados nos seguintes artigos: