sys.dm_exec_connections (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve información acerca de las conexiones establecidas con esta instancia del motor de base de datos y los detalles de cada conexión. Devuelve información de conexión de todo el servidor para SQL Server y Azure SQL Managed Instance. Devuelve información de conexión para la base de datos actual en Azure SQL Database. Devuelve información de conexión para todas las bases de datos del mismo grupo elástico para las bases de datos de grupos elásticos de Azure SQL Database.

Nota:

Para llamarlo desde un grupo de SQL dedicado de Azure Synapse Analytics o Analytics Platform System (PDW), consulte sys.dm_pdw_exec_connections (Transact-SQL). Para el grupo de SQL sin servidor o Microsoft Fabric, use sys.dm_exec_connections.

Nombre de la columna Tipo de datos Descripción
session_id int Identifica la sesión asociada a esta conexión. Acepta valores NULL.
most_recent_session_id int Representa el Id. de sesión de la solicitud más reciente asociada a esta conexión. (Las conexiones SOAP pueden ser reutilizadas por otra sesión). Admite un valor NULL.
connect_time datetime Marca de tiempo en que se estableció la conexión. No admite valores NULL.
net_transport nvarchar(40) Cuando se usa MARS, devuelve el valor de sesión de cada conexión adicional asociada a una sesión lógica de MARS.

Nota: Describe el protocolo de transporte físico utilizado por esta conexión. No admite valores NULL.
protocol_type nvarchar(40) Especifica el tipo de protocolo de la carga. Actualmente distingue entre TDS ("TSQL"), "SOAP" y "Creación de reflejo de la base de datos". Acepta valores NULL.
protocol_version int Versión del protocolo de acceso a datos asociado a esta conexión. Acepta valores NULL.
endpoint_id int Identificador que describe el tipo de conexión. Este endpoint_id se puede utilizar para consultar la vista sys.endpoints. Acepta valores NULL.
encrypt_option nvarchar(40) Valor booleano que describe si se ha habilitado el cifrado para esta conexión. No admite valores NULL.
auth_scheme nvarchar(40) Especifica el esquema de autenticación de SQL Server/Windows que se usa en esta conexión. No admite valores NULL.
node_affinity smallint Identifica el nodo de memoria con el que esta conexión tiene afinidad. No admite valores NULL.
num_reads int Número de lecturas de bytes que se han producido en esta conexión. Acepta valores NULL.
num_writes int Número de escrituras de bytes que se han producido en esta conexión. Acepta valores NULL.
last_read datetime Marca de tiempo de la última operación de lectura realizada en esta conexión. Acepta valores NULL.
last_write datetime Marca de tiempo de la última operación de escritura realizada en esta conexión. Acepta valores NULL.
net_packet_size int Tamaño del paquete de red utilizado para la transferencia de información y datos. Acepta valores NULL.
client_net_address varchar(48) Dirección de host del cliente que se conecta a este servidor. Acepta valores NULL.
client_tcp_port int Número de puerto del equipo cliente asociado a esta conexión. Acepta valores NULL.

En Azure SQL Database, esta columna siempre devuelve NULL.
local_net_address varchar(48) Representa la dirección IP del servidor que es el destino de esta conexión. Solo está disponible para las conexiones que utilicen el proveedor de transporte TCP. Acepta valores NULL.

En Azure SQL Database, esta columna siempre devuelve NULL.
local_tcp_port int Representa el puerto TCP del servidor de destino de esta conexión, si se trata de una conexión que utiliza el transporte TCP. Acepta valores NULL.

En Azure SQL Database, esta columna siempre devuelve NULL.
connection_id uniqueidentifier Identifica cada conexión de manera única. No admite valores NULL.
parent_connection_id uniqueidentifier Identifica la conexión principal utilizada por la sesión MARS. Acepta valores NULL.
most_recent_sql_handle varbinary(64) Identificador SQL de la última solicitud ejecutada en esta conexión. La columna most_recent_sql_handle siempre está sincronizada con la columna most_recent_session_id. Acepta valores NULL.
pdw_node_id int Se aplica a: Azure Synapse Analytics, Sistema de la plataforma de análisis (PDW)

Identificador del nodo en el que se encuentra esta distribución.

Permisos

En SQL Server y SQL Managed Instance, requiere el permiso VIEW SERVER STATE.

En los objetivos de servicio básico de Azure SQL Database, S0 y S1, y para las bases de datos de grupos elásticos, se requiere la cuenta de administrador del servidor, la cuenta de administrador de Microsoft Entra o la pertenencia al rol de ##MS_ServerStateReader##servidor. En el resto de objetivos del servicio de SQL Database, se requiere el permiso VIEW DATABASE STATE en la base de datos o la pertenencia en el rol del servidor ##MS_ServerStateReader##.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Combinaciones físicas

Diagram of physical joins for sys.dm_exec_connections.

Cardinalidades de relación

Primer elemento Segundo elemento Relación
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Uno a ninguno o uno a varios
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Varios a uno
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id Uno a uno

Normalmente, para cada fila de sys.dm_exec_connections hay una sola fila coincidente en sys.dm_exec_sessions. Sin embargo, en algunos casos, como sesiones internas del sistema o procedimientos de activación de Service Broker , puede haber una fila en sys.dm_exec_sessions sin una fila correspondiente en sys.dm_exec_connections.

Cuando se usa MARS, puede haber varias filas en sys.dm_exec_connections para una fila de sys.dm_exec_sessions, una fila para la conexión primaria y una fila para cada sesión lógica de MARS. Las últimas filas se pueden identificar mediante el valor de la columna net_transport que se establece en Sesión. Para estas conexiones, el valor de la columna connection_id de sys.dm_exec_connections coincide con el valor de la columna connection_id de sys.dm_exec_requests para las solicitudes de MARS en curso.

Ejemplos

En la siguiente consulta de Transact-SQL se recopila información sobre la propia conexión de una 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;  

Pasos siguientes

Obtenga más información sobre los conceptos relacionados en los artículos siguientes: