sys.dm_exec_connections (Transact-SQL)

Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric

Retorna informações sobre as conexões estabelecidas com essa instância do mecanismo de banco de dados e os detalhes de cada conexão. Retorna informações de conexão de todo o servidor para o SQL Server e a Instância Gerenciada de SQL do Azure. Retorna informações de conexão para o banco de dados atual no Banco de Dados SQL do Azure. Retorna informações de conexão para todos os bancos de dados no mesmo pool elástico para bancos de dados em pools elásticos no Banco de Dados SQL do Azure.

Observação

Para chamar isso do pool de SQL dedicado no Azure Synapse Analytics ou no Analytics Platform System (PDW), confira sys.dm_pdw_exec_connections (Transact-SQL). Para o pool de SQL sem servidor ou o Microsoft Fabric, use sys.dm_exec_connections.

Nome da coluna Tipo de dados Descrição
session_id int Identifica a sessão associada a esta conexão. Permite valor nulo.
most_recent_session_id int Representa a ID de sessão da solicitação mais recente associada a esta conexão. (As conexões SOAP podem ser reutilizadas por outra sessão.) É anulável.
connect_time datetime Carimbo de data/hora de quando a conexão foi estabelecida. Não permite valor nulo.
net_transport nvarchar(40) Quando o MARS é usado, retorna a Sessão para cada conexão adicional associada a uma sessão lógica de MARS.

Observação: descreve o protocolo de transporte físico usado por essa conexão. Não permite valor nulo.
protocol_type nvarchar(40) Especifica o tipo de protocolo da carga. Atualmente, ele distingue entre TDS ("TSQL"), "SOAP" e "Espelhamento de Banco de Dados". Permite valor nulo.
protocol_version int Versão do protocolo de acesso a dados associada a esta conexão. Permite valor nulo.
endpoint_id int Um identificador que descreve qual é o tipo da conexão. Esse endpoint_id pode ser usado para consultar a exibição sys.endpoints. Permite valor nulo.
encrypt_option nvarchar(40) Valor booliano que descreve se a criptografia está habilitada para esta conexão. Não permite valor nulo.

Para pontos de extremidade de espelhamento HADR, essa coluna sempre retorna FALSE. Em vez disso, use a sys.database_mirroring_endpoints DMV para verificar se as conexões com um ponto de extremidade de espelhamento HADR estão criptografadas.
auth_scheme nvarchar(40) Especifica o esquema do SQL Server/Autenticação do Windows usado com esta conexão. Não permite valor nulo.
node_affinity smallint Identifica o nó de memória com o qual esta conexão tem afinidade. Não permite valor nulo.
num_reads int Número de leituras de byte que ocorreram nesta conexão. Permite valor nulo.
num_writes int Número de gravações de byte que ocorreram nesta conexão. Permite valor nulo.
last_read datetime Carimbo de data/hora de quando a última leitura ocorreu nesta conexão. Permite valor nulo.
last_write datetime Carimbo de data/hora de quando a última gravação ocorreu nesta conexão. Permite valor nulo.
net_packet_size int Tamanho de pacote de rede usado para transferência de informações e de dados. Permite valor nulo.
client_net_address varchar(48) Endereço do host do cliente conectado a este servidor. Permite valor nulo.
client_tcp_port int Número da porta no computador cliente que está associado a esta conexão. Permite valor nulo.

No Banco de Dados SQL do Azure, essa coluna sempre retorna NULL.
local_net_address varchar(48) Representa o endereço IP no servidor ao qual esta conexão foi destinada. Disponível apenas para conexões que usam o provedor de transporte TCP. Permite valor nulo.

No Banco de Dados SQL do Azure, essa coluna sempre retorna NULL.
local_tcp_port int Representa a porta do servidor TCP ao qual esta conexão foi destinada se houver uma conexão que use o transporte TCP. Permite valor nulo.

No Banco de Dados SQL do Azure, essa coluna sempre retorna NULL.
connection_id uniqueidentifier Identifica cada conexão exclusivamente. Não permite valor nulo.
parent_connection_id uniqueidentifier Identifica a conexão primária que a sessão MARS está usando. Permite valor nulo.
most_recent_sql_handle varbinary(64) O identificador SQL da última solicitação executada nesta conexão. A coluna most_recent_sql_handle sempre é sincronizada com a coluna most_recent_session_id. Permite valor nulo.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que essa distribuição está ativada.

Permissões

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

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

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Junções físicas

Diagrama das junções físicas para sys.dm_exec_connections.

Cardinalidades de relações

Primeiro elemento Segundo elemento Relação
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 Um para um

Geralmente, para cada linha em sys.dm_exec_connections há 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 MARS é usado, pode haver várias linhas em sys.dm_exec_connections para uma linha em sys.dm_exec_sessions, uma linha para a conexão pai e uma linha para cada sessão lógica de MARS. As últimas linhas podem ser identificadas pelo valor na coluna net_transport que está sendo definida como Sessão. Para essas conexões, o valor na coluna connection_id de sys.dm_exec_connections corresponde ao valor na coluna connection_id de sys.dm_exec_requests para solicitações de MARS em andamento.

Exemplos

A consulta Transact-SQL a seguir coleta informações sobre a própria conexão de uma 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óximas etapas

Saiba mais sobre conceitos relacionados nos seguintes artigos: