sys.dm_exec_sessions (Transact-SQL)
Devuelve una fila por cada sesión autenticada en SQL Server. sys.dm_exec_sessions es una vista de ámbito de servidor que muestra información sobre todas las tareas internas y conexiones de usuario activas. 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, después, obtener más información acerca de esa sesión con 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 tabla del sistema sys.sysprocesses.
Nombre de columna |
Tipo de datos |
Descripción |
---|---|---|
session_id |
smallint |
Identifica la sesión asociada a cada conexión principal activa. No acepta valores NULL. |
login_time |
datetime |
Hora en que se estableció la sesión. No acepta valores NULL. |
host_name |
nvarchar(128) |
Nombre de la estación de trabajo cliente específica de una sesión. El valor es NULL para las sesiones internas. Admite valores NULL. |
program_name |
nvarchar(128) |
Nombre del programa cliente que inició la sesión. El valor es NULL para las sesiones internas. Admite valores NULL. |
host_process_id |
int |
Id. de proceso del programa cliente que inició la sesión. El valor es NULL para las sesiones internas. Admite valores NULL. |
client_version |
int |
Versión del protocolo TDS de la interfaz utilizada por el cliente para conectarse al servidor. El valor es NULL para las sesiones internas. Admite valores NULL.
ValorVersión de TDS Versión de SQL Server
04.2SQL Server 6.x
16.0SQL Server 6.x
27.0SQL Server 7.0
37.1SQL Server 2000
47.1 Revisión 1SQL Server 2000 con Service Pack 1
57.2SQL Server 2005
67.3SQL Server 2008
|
client_interface_name |
nvarchar(32) |
Nombre del protocolo que usa el cliente para conectarse al servidor. El valor es NULL para las sesiones internas. Admite valores NULL. |
security_id |
varbinary(85) |
Id. de seguridad de Microsoft Windows asociado al inicio de sesión. No acepta valores NULL. |
login_name |
nvarchar(128) |
Nombre de inicio de sesión de SQL Server en el que se está ejecutando la sesión. Para saber qué nombre de inicio de sesión original ha creado la sesión, vea 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. No acepta valores NULL. |
nt_domain |
nvarchar(128) |
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 las sesiones internas y usuarios que no son del dominio. Admite valores NULL. |
nt_user_name |
nvarchar(128) |
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 las sesiones internas y usuarios que no son del dominio. Admite valores NULL. |
status |
nvarchar(30) |
Estado de la sesión. Valores posibles:
No acepta valores NULL. |
context_info |
varbinary(128) |
Valor CONTEXT_INFO para la sesión. El usuario establece la información de contexto con la instrucción SET CONTEXT_INFO. Admite valores NULL. |
cpu_time |
int |
Tiempo de CPU, en milisegundos, utilizado por esta sesión. No acepta valores NULL. |
memory_usage |
int |
Número de páginas de memoria de 8 KB utilizadas por esta sesión. No acepta valores NULL. |
total_scheduled_time |
int |
Tiempo total, en milisegundos, para el que se programó la ejecución de la sesión (sus solicitudes). No acepta valores NULL. |
total_elapsed_time |
int |
Tiempo que ha transcurrido, en milisegundos, desde que se estableció la sesión. No acepta valores NULL. |
endpoint_id |
int |
Id. del extremo asociado a la sesión. No acepta valores NULL. |
last_request_start_time |
datetime |
Hora a la que comenzó la última solicitud de la sesión. Se incluye la solicitud que se ejecuta actualmente. No acepta valores NULL. |
last_request_end_time |
datetime |
Hora a la que finalizó la última solicitud de la sesión. Admite valores NULL. |
reads |
bigint |
Número de lecturas realizadas, por solicitudes de esta sesión, durante esta sesión. No acepta valores NULL. |
writes |
bigint |
Número de escrituras realizadas, por solicitudes de esta sesión, durante esta sesión. No acepta valores NULL. |
logical_reads |
bigint |
Número de lecturas lógicas realizadas en la sesión. No acepta valores NULL. |
is_user_process |
bit |
0 si es una sesión de sistema; De lo contrario, es 1. No acepta valores NULL. |
text_size |
int |
Valor de TEXTSIZE para la sesión. No acepta valores NULL. |
language |
nvarchar(128) |
Valor de LANGUAGE para la sesión. Admite valores NULL. |
date_format |
nvarchar(3) |
Valor de DATEFORMAT para la sesión. Admite valores NULL. |
date_first |
smallint |
Valor de DATEFIRST para la sesión. No acepta valores NULL. |
quoted_identifier |
bit |
Valor de QUOTED_IDENTIFIER para la sesión. No acepta valores NULL. |
arithabort |
bit |
Valor de ARITHABORT para la sesión. No acepta valores NULL. |
ansi_null_dflt_on |
bit |
Valor de ANSI_NULL_DFLT_ON para la sesión. No acepta valores NULL. |
ansi_defaults |
bit |
Valor de ANSI_DEFAULTS para la sesión. No acepta valores NULL. |
ansi_warnings |
bit |
Valor de ANSI_WARNINGS para la sesión. No acepta valores NULL. |
ansi_padding |
bit |
Valor de ANSI_PADDING para la sesión. No acepta valores NULL. |
ansi_nulls |
bit |
Valor de ANSI_NULLS para la sesión. No acepta valores NULL. |
concat_null_yields_null |
bit |
Valor de CONCAT_NULL_YIELDS_NULL para la sesión. No acepta valores NULL. |
transaction_isolation_level |
smallint |
Nivel de aislamiento de transacción de la sesión. 0 = Unspecified 1 = ReadUncomitted 2 = ReadCommitted 3 = Repeatable 4 = Serializable 5 = Snapshot No acepta valores NULL. |
lock_timeout |
int |
Valor de LOCK_TIMEOUT para la sesión. El valor se expresa en milisegundos. No acepta valores NULL. |
deadlock_priority |
int |
Valor de DEADLOCK_PRIORITY para la sesión. No acepta valores NULL. |
row_count |
bigint |
Número de filas devueltas en la sesión hasta este momento. No acepta valores NULL. |
prev_error |
int |
Id. del último error devuelto en la sesión. No acepta valores NULL. |
original_security_id |
varbinary(85) |
Identificador de seguridad de Microsoft Windows asociado al original_login_name. No acepta valores NULL. |
original_login_name |
nvarchar(128) |
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 o un nombre de usuario de dominio autenticado en Windows. Tenga en cuenta que, después de la conexión inicial, la sesión puede haber pasado por muchos cambios de contexto implícitos o explícitos. Por ejemplo, cuando se usa EXECUTE AS. No acepta valores NULL. |
last_successful_logon |
datetime |
Hora del último inicio de sesión correcto para original_login_name con anterioridad al inicio de sesión actual. |
last_unsuccessful_logon |
datetime |
Hora del último intento de inicio de sesión incorrecto para original_login_name con anterioridad al inicio de sesión actual. |
unsuccessful_logons |
bigint |
Número de intentos de inicio de sesión incorrectos para original_login_name entre last_successful_logon y login_time. |
group_id |
int |
Identificador del grupo de cargas de trabajo al que pertenece esta sesión. No acepta valores NULL. |
Permisos
Requiere el permiso VIEW SERVER STATE en el servidor.
[!NOTA]
Si el usuario posee el permiso VIEW SERVER STATE en el servidor, el usuario verá todas las sesiones que se están ejecutando en la instancia de SQL Server; de lo contrario, el usuario sólo verá la sesión actual.
Notas
Estadísticas de inicio de sesión para la compatibilidad con criterio común
Cuando la opción common criteria compliance se habilita mediante el procedimiento almacenado sp_configure, las estadísticas de inicio de sesión se almacenan y muestran en las siguientes columnas de sys.dm_exec_sessions:
last_successful_logon
last_unsuccessful_logon
unsuccessful_logons
Si la opción de configuración del servidor no está habilitada, estas columnas sys.dm_exec_sessions devolverán valores nulos. Para obtener más información acerca de cómo establecer esta opción de configuración del servidor, vea Opción Compatibilidad con criterio común habilitada.
Cardinalidades de relación
De |
Para |
Aplicar en |
Relación |
---|---|---|---|
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 APPLY OUTER APPLY |
Uno a ninguno o uno a varios |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage |
session_id |
Uno a uno |
Ejemplos
A. Buscar los 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. Buscar cursores de ejecución prolongada
En el ejemplo siguiente se buscan los cursores que se han abierto durante más de un período concreto, quién los creó y en qué sesión están.
USE master;
GO
SELECT creation_time ,cursor_id
,name ,c.session_id ,login_name
FROM sys.dm_exec_cursors(0) AS c
JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
C. Buscar 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 aquella 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
);
Historial de cambios
Contenido actualizado |
---|
Se han agregado valores a la columna de descripción de versión de cliente. |