Supervisión de conexiones, sesiones y solicitudes mediante DMV
Se aplica a:✅ punto de conexión de análisis de SQL y Warehouse en Microsoft Fabric
Puede usar vistas de administración dinámica (DMV) existentes para supervisar el estado de conexión, sesión y solicitud en Microsoft Fabric. Para obtener más información sobre las herramientas y los métodos de ejecución de consultas de T-SQL, consulte Consulta del almacén.
Supervisión de conexiones, sesiones y solicitudes mediante DMV de ciclo de vida de consultas
Para la versión actual, hay tres vistas de administración dinámica (DMV) proporcionadas para recibir información del ciclo de vida de consultas SQL en directo.
- sys.dm_exec_connections
- Devuelve información sobre cada conexión establecida entre el almacén y el motor.
- sys.dm_exec_sessions
- Devuelve información sobre cada sesión autenticada entre el elemento y el motor.
- sys.dm_exec_requests
- Devuelve información sobre cada solicitud activa en una sesión.
Estas tres DMV proporcionan información detallada sobre los escenarios siguientes:
- ¿Quién es el usuario que ejecuta la sesión?
- ¿Cuándo inició la sesión el usuario?
- ¿Cuál es el identificador de la conexión al almacenamiento de datos y la sesión que ejecuta la solicitud?
- ¿Cuántas consultas se ejecutan activamente?
- ¿Qué consultas son de larga duración?
En este tutorial, aprenderá a supervisar las consultas SQL en ejecución mediante vistas de administración dinámica (DMV).
Consultas DMV de ejemplo
En el ejemplo siguiente, se consulta sys.dm_exec_sessions
para encontrar todas aquellas sesiones que se estén ejecutando actualmente.
SELECT *
FROM sys.dm_exec_sessions;
Encuentre la relación entre conexiones y sesiones
En el ejemplo siguiente, se unen sys.dm_exec_connections
y sys.dm_exec_sessions
a la relación entre la sesión activa en una conexión específica.
SELECT connections.connection_id,
connections.connect_time,
sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;
Identificación y eliminación de una consulta de larga duración
Esta primera consulta identifica la lista de consultas de larga duración en el orden de la consulta que haya tardado más desde que llegó.
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
Esta segunda consulta muestra qué usuario ejecutó la sesión que tiene la consulta de ejecución prolongada.
SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';
En esta tercera consulta se muestra cómo usar el comando KILL en session_id
con la consulta de ejecución prolongada.
KILL 'SESSION_ID WITH LONG-RUNNING QUERY'
Por ejemplo
KILL '101'
Permisos
- Un administrador tiene permisos para ejecutar las tres DMV (
sys.dm_exec_connections
,sys.dm_exec_sessions
ysys.dm_exec_requests
) para ver su propia información y la de otros dentro de un área de trabajo. - Un miembro, colaborador y visor pueden ejecutar
sys.dm_exec_sessions
ysys.dm_exec_requests
y ver sus propios resultados en el almacén, pero no tienen permiso para ejecutarsys.dm_exec_connections
. - Solo un administrador tiene permiso para ejecutar el comando
KILL
.