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
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: