sys.dm_exec_connections (Transact-SQL)
Se aplica a: SQL Server Base de datos de Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Punto de conexión de análisis SQL en Microsoft Fabric Almacén 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. En el caso de los puntos de conexión de creación de reflejo de HADR, esta columna siempre devuelve FALSE. Use la sys.database_mirroring_endpoints DMV en su lugar para comprobar si se cifran las conexiones a un punto de conexión de creación de reflejo de HADR. |
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
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: