Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Endpoint de analítica SQL en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
La sys.dm_exec_sessions vista de gestión dinámica devuelve una fila por sesión autenticada en SQL Server.
sys.dm_exec_sessions es una vista de ámbito de servidor que muestra información acerca de todas las conexiones de usuario activas y las tareas internas. Esta información incluye la versión del cliente, el nombre del programa cliente, la hora de inicio de sesión del cliente, el usuario de inicio de sesión, la configuración de la sesión actual, etcétera. Use sys.dm_exec_sessions para ver primero la carga del sistema actual e identificar una sesión de interés y obtener después más información acerca de esa sesión mediante otras vistas o funciones de administración dinámica.
Las vistas de administración dinámica sys.dm_exec_connections, sys.dm_exec_sessions y sys.dm_exec_requests se asignan a la vista de compatibilidad del sistema sys.sysprocesses.
Nota:
Para llamar a esta vista desde Azure Synapse Analytics (solo pool SQL dedicado), véase sys.dm_pdw_nodes_exec_sessions. Úsalo sys.dm_exec_sessions para Azure Synapse Analytics (solo pool SQL sin servidor) o Microsoft Fabric.
| Nombre de la columna | Tipo de dato | Anulable | Description |
|---|---|---|---|
session_id |
smallint | No | Identifica la sesión asociada a cada conexión principal activa. |
login_time |
datetime | No | Hora en que se estableció la sesión. Las sesiones que no están completamente iniciadas cuando se consulta este DMV aparecen con un tiempo de inicio de sesión de 1900-01-01. |
host_name |
nvarchar(128) | Sí | Nombre de la estación de trabajo cliente específica de una sesión. El valor es NULL para las sesiones internas.Nota de seguridad: La aplicación cliente proporciona el nombre de la estación de trabajo y puede proporcionar datos inexactos. No se base en HOST_NAME una característica de seguridad. |
program_name |
nvarchar(128) | Sí | Nombre del programa cliente que inició la sesión. El valor es NULL para las sesiones internas. |
host_process_id |
int | Sí | Identificador de proceso del programa cliente que inició la sesión. El valor es NULL para las sesiones internas. |
client_version |
int | Sí | Versión del protocolo TDS de la interfaz utilizada por el cliente para conectarse al servidor. El valor es NULL para las sesiones internas. |
client_interface_name |
nvarchar(32) | Sí | Nombre de la biblioteca o controlador que el cliente está usando para comunicarse con el servidor. El valor es NULL para las sesiones internas. |
security_id |
varbinary(85) | No | Identificador de seguridad de Windows asociado al inicio de sesión. |
login_name |
nvarchar(128) | No | Nombre de inicio de sesión de SQL Server en el que se está ejecutando la sesión. Para obtener el nombre de inicio de sesión original que creó la sesión, consulte original_login_name. Puede ser un nombre de inicio de sesión autenticado en SQL Server o un nombre de usuario de dominio autenticado en Windows. |
nt_domain |
nvarchar(128) | Sí | Dominio de Windows para el cliente si la sesión utiliza la autenticación de Windows o una conexión de confianza. Este valor es NULL para sesiones internas y usuarios que no son de dominio. |
nt_user_name |
nvarchar(128) | Sí | Nombre de usuario de Windows para el cliente si la sesión utiliza la autenticación de Windows o una conexión de confianza. Este valor es NULL para sesiones internas y usuarios que no son de dominio. |
status |
nvarchar(30) | No | Estado de la sesión. Valores posibles:Running - Actualmente, se ejecutan una o varias solicitudes.Sleeping - Actualmente no se ejecutan solicitudesDormant - La sesión se ha restablecido debido a la agrupación de conexiones y ahora está en estado de prelogin.Preconnect - La sesión está en el clasificador resource Governor. |
context_info |
varbinary(128) | Sí |
CONTEXT_INFO valor de la sesión. El usuario establece la información de contexto con la SET CONTEXT_INFO sentencia. |
cpu_time |
int | No | Tiempo de CPU, en milisegundos, utilizado por esta sesión. |
memory_usage |
int | No | Número de páginas de memoria de 8 KB utilizadas por esta sesión. |
total_scheduled_time |
int | No | Tiempo total, en milisegundos, para el que se programó la ejecución de la sesión (sus solicitudes). |
total_elapsed_time |
int | No | Tiempo transcurrido, en milisegundos, desde que se estableció la sesión. |
endpoint_id |
int | No | Identificador del punto de conexión asociado a la sesión. |
last_request_start_time |
datetime | No | Hora a la que comenzó la última solicitud de la sesión. Esta vez incluye la solicitud que se está ejecutando actualmente. |
last_request_end_time |
datetime | Sí | Hora a la que se realizó por última vez una solicitud de la sesión. |
reads |
bigint | No | Número de lecturas físicas realizadas, a petición en esta sesión, durante esta sesión. |
writes
1 |
bigint | No | Número de escrituras físicas realizadas, a petición en esta sesión, durante esta sesión. |
logical_reads |
bigint | No | Número de lecturas lógicas realizadas, por solicitudes de esta sesión, durante esta sesión. |
is_user_process |
bit | No |
0 si la sesión es una sesión del sistema. De lo contrario, es 1. |
text_size |
int | No |
TEXTSIZE configuración de la sesión. |
language |
nvarchar(128) | Sí |
LANGUAGE configuración de la sesión. |
date_format |
nvarchar (3) | Sí |
DATEFORMAT configuración de la sesión. |
date_first |
smallint | No |
DATEFIRST configuración de la sesión. |
quoted_identifier |
bit | No |
QUOTED_IDENTIFIER configuración de la sesión. |
arithabort |
bit | No |
ARITHABORT configuración de la sesión. |
ansi_null_dflt_on |
bit | No |
ANSI_NULL_DFLT_ON configuración de la sesión. |
ansi_defaults |
bit | No |
ANSI_DEFAULTS configuración de la sesión. |
ansi_warnings |
bit | No |
ANSI_WARNINGS configuración de la sesión. |
ansi_padding |
bit | No |
ANSI_PADDING configuración de la sesión. |
ansi_nulls |
bit | No |
ANSI_NULLS configuración de la sesión. |
concat_null_yields_null |
bit | No |
CONCAT_NULL_YIELDS_NULL configuración de la sesión. |
transaction_isolation_level |
smallint | No | Nivel de aislamiento de transacción de la sesión.0 = Unspecified1 = ReadUncommitted2 = ReadCommitted3 = RepeatableRead4 = Serializable5 = Snapshot |
lock_timeout |
int | No |
LOCK_TIMEOUT configuración de la sesión. El valor se expresa en milisegundos. |
deadlock_priority |
int | No |
DEADLOCK_PRIORITY configuración de la sesión. |
row_count |
bigint | No | Número de filas devueltas en la sesión hasta este momento. |
prev_error |
int | No | Identificador del último error devuelto en la sesión. |
original_security_id |
varbinary(85) | No | Identificador de seguridad de Windows asociado a .original_login_name |
original_login_name |
nvarchar(128) | No | Nombre de inicio de sesión de SQL Server que el cliente usó para crear esta sesión. Puede ser un nombre de inicio de sesión autenticado en SQL Server, un nombre de usuario de dominio autenticado en Windows o un usuario de base de datos independiente. La sesión podría haber pasado por muchos cambios de contexto implícitos o explícitos tras la conexión inicial, por ejemplo, si EXECUTE AS se utiliza. |
last_successful_logon |
datetime | Sí | Hora del último inicio de sesión correcto para antes original_login_name de que se inicie la sesión actual. |
last_unsuccessful_logon |
datetime | Sí | Hora del último intento de inicio de sesión incorrecto para antes original_login_name de que se inicie la sesión actual. |
unsuccessful_logons |
bigint | Sí | Número de intentos de inicio de sesión incorrectos para entre original_login_name y last_successful_logonlogin_time. |
group_id |
int | No | Identificador del grupo de cargas de trabajo al que pertenece esta sesión. |
database_id |
smallint | No | Identificador de la base de datos actual para cada sesión. En Azure SQL Database, los valores son únicos dentro de una base de datos única o un grupo elástico, pero no dentro de un servidor lógico. Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. |
authenticating_database_id |
int | Sí | Identificador de la base de datos que autentica la entidad de seguridad. En el caso de los inicios de sesión, el valor es 0. Para los usuarios de bases de datos independientes, el valor es el identificador de base de datos de la base de datos independiente.Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. |
open_transaction_count |
int | No | Número de transacciones abiertas por sesión. Se aplica a: SQL Server 2012 (11.x) y versiones posteriores. |
pdw_node_id |
int | No | Identificador del nodo en el que se encuentra esta distribución. Aplica a: Azure Synapse Analytics. |
page_server_reads |
bigint | No | Número de lecturas del servidor de páginas realizadas, por solicitudes de esta sesión, durante esta sesión. Se aplica a: Hiperescala de Azure SQL Database. |
contained_availability_group_id |
uniqueidentifier | Sí | ID del grupo de disponibilidad contenido. Se aplica a: SQL Server 2022 (16.x) y versiones posteriores. |
time_zone |
nvarchar(128) | No | Identifica el valor actual de la configuración de husto horario de la sesión. El valor predeterminado es LOCAL. Si se modifica la zona horaria de la sesión, entonces el valor contiene el valor especificado de la name columna en la sys.time_zone_info vista del sistema. |
1 Especifica cuándo una página está marcada como sucia en el pool de búfer. Este valor no equivale directamente a escrituras reales, porque la misma página puede marcarse más de una vez. Estos contadores se agregan al final del lote.
Permissions
Todos pueden ver su propia información de sesión.
SQL Server 2019 (15.x) y versiones anteriores requieren VIEW SERVER STATE ver todas las sesiones en el servidor. SQL Server 2022 (16.x) y versiones posteriores requieren VIEW SERVER PERFORMANCE STATE permiso en el servidor.
Azure SQL Database requiere VIEW DATABASE STATE ver todas las conexiones a la base de datos actual. No puedes conceder VIEW DATABASE STATE en la master base de datos.
Comentarios
Cuando la common criteria compliance enabled opción de configuración del servidor está activada, las siguientes columnas muestran estadísticas de inicio de sesión:
last_successful_logonlast_unsuccessful_logonunsuccessful_logons
Si common criteria compliance enabled la opción no está activada, estas columnas devolven valores nulos. Para obtener más información sobre cómo establecer esta opción de configuración de servidor, consulte Configuración del servidor: cumplimiento de criterios comunes habilitado.
Las conexiones de administrador en Azure SQL Database ven una fila por sesión autenticada. Las sa sesiones que aparecen en el conjunto de resultados no afectan a la cuota de usuarios para las sesiones. Las conexiones no administrativas solo ven información relacionada con sus sesiones de usuario en la base de datos.
Debido a las diferencias en cómo se registran, open_transaction_count puede que no coincida con sys.dm_tran_session_transactions.open_transaction_count.
Cardinalidades de relación
| De | En | On/Apply | Relationship |
|---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests | session_id |
Uno a ninguno o uno a varios |
sys.dm_exec_sessions |
sys.dm_exec_connections | session_id |
Uno a ninguno o uno a varios |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions | session_id |
Uno a ninguno o uno a varios |
sys.dm_exec_sessions |
sys.dm_exec_cursors (session_id | 0) |
session_id CROSS APPLYOUTER APPLY |
Uno a ninguno o uno a varios |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage | session_id |
Uno a uno |
Examples
A. Búsqueda de usuarios conectados al servidor
En el ejemplo siguiente se buscan los usuarios que están conectados al servidor y se devuelve el número de sesiones de cada usuario.
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Búsqueda de cursores de ejecución prolongada
En el ejemplo siguiente se buscan los cursores abiertos durante más de un período de tiempo específico, quién creó los cursores y en qué sesión se encuentran los cursores.
USE master;
GO
SELECT creation_time,
cursor_id,
name,
c.session_id,
login_name
FROM sys.dm_exec_cursors(0) AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
C. Búsqueda de sesiones inactivas que tienen transacciones abiertas
En el ejemplo siguiente se buscan sesiones que tienen transacciones abiertas y están inactivas. Una sesión inactiva es aquélla que no tiene ninguna solicitud en ejecución.
SELECT s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS (SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id)
AND NOT EXISTS (SELECT *
FROM sys.dm_exec_requests AS r
WHERE r.session_id = s.session_id);
D. Búsqueda de información sobre la propia conexión de una consulta
En el ejemplo siguiente 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
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.session_id = @@SPID;