sys.dm_exec_sessions (Transact-SQL)sys.dm_exec_sessions (Transact-SQL)

ESTE TEMA SE APLICA A:síSQL Server (a partir de 2008)síAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve una fila por cada sesión autenticada en SQL ServerSQL Server.Returns one row per authenticated session on SQL ServerSQL 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.sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. 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.This information includes client version, client program name, client login time, login user, current session setting, and more. 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.Use sys.dm_exec_sessions to first view the current system load and to identify a session of interest, and then learn more information about that session by using other dynamic management views or dynamic management functions.

Las vistas de administración dinámica sys.dm_exec_connections, sys.dm_exec_sessions y sys.dm_exec_requests se asignan a la sys.sysprocesses tabla del sistema.The sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests dynamic management views map to the sys.sysprocesses system table.

Nota: para llamar a esta desde Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse o Almacenamiento de datos paralelosParallel Data Warehouse, use el nombre sys.dm_pdw_nodes_exec_sessions.NOTE: To call this from Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse or Almacenamiento de datos paralelosParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_sessions.

Nombre de columnaColumn name Tipo de datosData type Descripción e información específica de la versiónDescription and version-specific information
session_idsession_id smallintsmallint Identifica la sesión asociada a cada conexión principal activa.Identifies the session associated with each active primary connection. No admite valores NULL.Is not nullable.
login_timelogin_time datetimedatetime Hora en que se estableció la sesión.Time when session was established. No admite valores NULL.Is not nullable.
host_namehost_name nvarchar (128)nvarchar(128) Nombre de la estación de trabajo cliente específica de una sesión.Name of the client workstation that is specific to a session. El valor es NULL para las sesiones internas.The value is NULL for internal sessions. Acepta valores NULL.Is nullable.

Nota de seguridad: la aplicación cliente proporciona el nombre de estación de trabajo y puede proporcionar datos inexactos.Security Note: The client application provides the workstation name and can provide inaccurate data. No confíe en HOST_NAME como característica de seguridad.Do not rely upon HOST_NAME as a security feature.
program_nameprogram_name nvarchar (128)nvarchar(128) Nombre del programa cliente que inició la sesión.Name of client program that initiated the session. El valor es NULL para las sesiones internas.The value is NULL for internal sessions. Acepta valores NULL.Is nullable.
host_process_idhost_process_id intint Identificador de proceso del programa cliente que inició la sesión.Process ID of the client program that initiated the session. El valor es NULL para las sesiones internas.The value is NULL for internal sessions. Acepta valores NULL.Is nullable.
client_versionclient_version intint Versión del protocolo TDS de la interfaz utilizada por el cliente para conectarse al servidor.TDS protocol version of the interface that is used by the client to connect to the server. El valor es NULL para las sesiones internas.The value is NULL for internal sessions. Acepta valores NULL.Is nullable.
client_interface_nameclient_interface_name nvarchar (32)nvarchar(32) Nombre de biblioteca/controlador utilizada por el cliente para comunicarse con el servidor.Name of library/driver being used by the client to communicate with the server. El valor es NULL para las sesiones internas.The value is NULL for internal sessions. Acepta valores NULL.Is nullable.
security_idsecurity_id varbinary (85)varbinary(85) Identificador de seguridad de Microsoft Windows asociado al inicio de sesión.Microsoft Windows security ID associated with the login. No admite valores NULL.Is not nullable.
login_namelogin_name nvarchar (128)nvarchar(128) Nombre de inicio de sesión de SQL ServerSQL Server en el que se está ejecutando la sesión. SQL ServerSQL Server login name under which the session is currently executing. Para saber qué nombre de inicio de sesión original ha creado la sesión, vea original_login_name.For the original login name that created the session, see original_login_name. Puede ser un SQL ServerSQL Server autentica el nombre de inicio de sesión o un nombre de usuario de dominio autenticado de Windows.Can be a SQL ServerSQL Server authenticated login name or a Windows authenticated domain user name. No admite valores NULL.Is not nullable.
nt_domainnt_domain nvarchar (128)nvarchar(128) Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Dominio de Windows para el cliente si la sesión utiliza la autenticación de Windows o una conexión de confianza.Windows domain for the client if the session is using Windows Authentication or a trusted connection. Este valor es NULL para las sesiones internas y los usuarios que no son del dominio.This value is NULL for internal sessions and non-domain users. Acepta valores NULL.Is nullable.
nt_user_nament_user_name nvarchar (128)nvarchar(128) Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Nombre de usuario de Windows para el cliente si la sesión utiliza la autenticación de Windows o una conexión de confianza.Windows user name for the client if the session is using Windows Authentication or a trusted connection. Este valor es NULL para las sesiones internas y los usuarios que no son del dominio.This value is NULL for internal sessions and non-domain users. Acepta valores NULL.Is nullable.
statusstatus nvarchar (30)nvarchar(30) Estado de la sesión.Status of the session. Valores posibles:Possible values:

Ejecuta -ejecutando una o varias solicitudes actualmenteRunning - Currently running one or more requests

En modo de suspensión -no hay solicitudes en ejecución actualmenteSleeping - Currently running no requests

Inactivo : sesión se ha restablecido debido a la agrupación de conexiones y ahora está en estado de inicio de sesión previo.Dormant – Session has been reset because of connection pooling and is now in prelogin state.

Preconnect -sesión está en el clasificador del regulador de recursos.Preconnect - Session is in the Resource Governor classifier.

No admite valores NULL.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) Valor CONTEXT_INFO para la sesión.CONTEXT_INFO value for the session. La información de contexto se establece por el usuario mediante el SET CONTEXT_INFO instrucción.The context information is set by the user by using the SET CONTEXT_INFO statement. Acepta valores NULL.Is nullable.
cpu_timecpu_time intint Tiempo de CPU, en milisegundos, utilizado por esta sesión.CPU time, in milliseconds, that was used by this session. No admite valores NULL.Is not nullable.
memory_usagememory_usage intint Número de páginas de memoria de 8 KB utilizadas por esta sesión.Number of 8-KB pages of memory used by this session. No admite valores NULL.Is not nullable.
total_scheduled_timetotal_scheduled_time intint Tiempo total, en milisegundos, para el que se programó la ejecución de la sesión (sus solicitudes).Total time, in milliseconds, for which the session (requests within) were scheduled for execution. No admite valores NULL.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Tiempo transcurrido, en milisegundos, desde que se estableció la sesión.Time, in milliseconds, since the session was established. No admite valores NULL.Is not nullable.
endpoint_idendpoint_id intint Identificador del extremo asociado a la sesión.ID of the Endpoint associated with the session. No admite valores NULL.Is not nullable.
last_request_start_timelast_request_start_time datetimedatetime Hora a la que comenzó la última solicitud de la sesión.Time at which the last request on the session began. Se incluye la solicitud que se ejecuta actualmente.This includes the currently executing request. No admite valores NULL.Is not nullable.
last_request_end_timelast_request_end_time datetimedatetime Hora a la que se realizó por última vez una solicitud de la sesión.Time of the last completion of a request on the session. Acepta valores NULL.Is nullable.
readsreads bigintbigint Número de lecturas realizadas, por solicitudes de esta sesión, durante esta sesión.Number of reads performed, by requests in this session, during this session. No admite valores NULL.Is not nullable.
writeswrites bigintbigint Número de escrituras realizadas, por solicitudes de esta sesión, durante esta sesión.Number of writes performed, by requests in this session, during this session. No admite valores NULL.Is not nullable.
logical_readslogical_reads bigintbigint Número de lecturas lógicas realizadas en la sesión.Number of logical reads that have been performed on the session. No admite valores NULL.Is not nullable.
is_user_processis_user_process bitbit 0 si es una sesión de sistema;0 if the session is a system session. En caso contrario, es 1.Otherwise, it is 1. No admite valores NULL.Is not nullable.
text_sizetext_size intint Valor de TEXTSIZE para la sesión.TEXTSIZE setting for the session. No admite valores NULL.Is not nullable.
languagelanguage nvarchar (128)nvarchar(128) Valor de LANGUAGE para la sesión.LANGUAGE setting for the session. Acepta valores NULL.Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) Valor de DATEFORMAT para la sesión.DATEFORMAT setting for the session. Acepta valores NULL.Is nullable.
date_firstdate_first smallintsmallint Valor de DATEFIRST para la sesión.DATEFIRST setting for the session. No admite valores NULL.Is not nullable.
quoted_identifierquoted_identifier bitbit Valor de QUOTED_IDENTIFIER para la sesión.QUOTED_IDENTIFIER setting for the session. No admite valores NULL.Is not nullable.
arithabortarithabort bitbit Valor de ARITHABORT para la sesión.ARITHABORT setting for the session. No admite valores NULL.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit Valor de ANSI_NULL_DFLT_ON para la sesión.ANSI_NULL_DFLT_ON setting for the session. No admite valores NULL.Is not nullable.
ansi_defaultsansi_defaults bitbit Valor de ANSI_DEFAULTS para la sesión.ANSI_DEFAULTS setting for the session. No admite valores NULL.Is not nullable.
ansi_warningsansi_warnings bitbit Valor de ANSI_WARNINGS para la sesión.ANSI_WARNINGS setting for the session. No admite valores NULL.Is not nullable.
ansi_paddingansi_padding bitbit Valor de ANSI_PADDING para la sesión.ANSI_PADDING setting for the session. No admite valores NULL.Is not nullable.
ansi_nullsansi_nulls bitbit Valor de ANSI_NULLS para la sesión.ANSI_NULLS setting for the session. No admite valores NULL.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit Valor de CONCAT_NULL_YIELDS_NULL para la sesión.CONCAT_NULL_YIELDS_NULL setting for the session. No admite valores NULL.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Nivel de aislamiento de transacción de la sesión.Transaction isolation level of the session.

0 = Unspecified0 = Unspecified

1 = ReadUncomitted1 = ReadUncomitted

2 = ReadCommitted2 = ReadCommitted

3 = Repeatable3 = Repeatable

4 = Serializable4 = Serializable

5 = Snapshot5 = Snapshot

No admite valores NULL.Is not nullable.
lock_timeoutlock_timeout intint Valor de LOCK_TIMEOUT para la sesión.LOCK_TIMEOUT setting for the session. El valor se expresa en milisegundos.The value is in milliseconds. No admite valores NULL.Is not nullable.
deadlock_prioritydeadlock_priority intint Valor de DEADLOCK_PRIORITY para la sesión.DEADLOCK_PRIORITY setting for the session. No admite valores NULL.Is not nullable.
row_countrow_count bigintbigint Número de filas devueltas en la sesión hasta este momento.Number of rows returned on the session up to this point. No admite valores NULL.Is not nullable.
prev_errorprev_error intint Identificador del último error devuelto en la sesión.ID of the last error returned on the session. No admite valores NULL.Is not nullable.
original_security_idoriginal_security_id varbinary (85)varbinary(85) Identificador de seguridad de MicrosoftMicrosoft Windows asociado al original_login_name. MicrosoftMicrosoft Windows security ID that is associated with the original_login_name. No admite valores NULL.Is not nullable.
original_login_nameoriginal_login_name nvarchar (128)nvarchar(128) Nombre de inicio de sesión de SQL ServerSQL Server que el cliente usó para crear esta sesión. SQL ServerSQL Server login name that the client used to create this session. Puede ser un nombre de inicio de sesión autenticado en SQL ServerSQL Server, un nombre de usuario de dominio autenticado en Windows o un usuario de base de datos independiente.Can be a SQL ServerSQL Server authenticated login name, a Windows authenticated domain user name, or a contained database user. 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.Note that the session could have gone through many implicit or explicit context switches after the initial connection. Por ejemplo, si EXECUTE AS se utiliza.For example, if EXECUTE AS is used. No admite valores NULL.Is not nullable.
last_successful_logonlast_successful_logon datetimedatetime Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Hora del último inicio de sesión correcto para original_login_name con anterioridad al inicio de sesión actual.Time of the last successful logon for the original_login_name before the current session started.
last_unsuccessful_logonlast_unsuccessful_logon datetimedatetime Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Hora del último intento de inicio de sesión incorrecto para original_login_name con anterioridad al inicio de sesión actual.Time of the last unsuccessful logon attempt for the original_login_name before the current session started.
unsuccessful_logonsunsuccessful_logons bigintbigint Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Número de intentos de inicio de sesión incorrectos para original_login_name entre last_successful_logon y login_time.Number of unsuccessful logon attempts for the original_login_name between the last_successful_logon and login_time.
group_idgroup_id intint Identificador del grupo de cargas de trabajo al que pertenece esta sesión.ID of the workload group to which this session belongs. No admite valores NULL.Is not nullable.
database_iddatabase_id smallintsmallint Se aplica a: desde SQL Server 2012SQL Server 2012 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Identificador de la base de datos actual para cada sesión.ID of the current database for each session.
authenticating_database_idauthenticating_database_id intint Se aplica a: desde SQL Server 2012SQL Server 2012 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Identificador de la base de datos que autentica la entidad de seguridad.ID of the database authenticating the principal. Para los inicios de sesión, el valor será 0.For Logins, the value will be 0. Para los usuarios de base de datos independiente, el valor será el identificador de base de datos de la base de datos independiente.For contained database users, the value will be the database ID of the contained database.
open_transaction_countopen_transaction_count intint Se aplica a: desde SQL Server 2012SQL Server 2012 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Número de transacciones abiertas por sesión.Number of open transactions per session.
pdw_node_idpdw_node_id intint Se aplica a: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse, Almacenamiento de datos paralelosParallel Data WarehouseApplies to: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse, Almacenamiento de datos paralelosParallel Data Warehouse

El identificador para el nodo que se encuentra en esta distribución.The identifier for the node that this distribution is on.

PermissionsPermissions

Todos pueden ver su propia información de sesión.Everyone can see their own session information.
SQL ServerSQL Server: Requiere VIEW SERVER STATE permiso en SQL ServerSQL Server para ver todas las sesiones en el servidor. SQL ServerSQL Server: Requires VIEW SERVER STATE permission on SQL ServerSQL Server to see all sessions on the server.
Base de datos SQLSQL Database: Requiere VIEW DATABASE STATE para ver todas las conexiones a la base de datos actual. Base de datos SQLSQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. VIEW DATABASE STATEno se puede conceder en el master base de datos.VIEW DATABASE STATE cannot be granted in the master database.

ComentariosRemarks

Cuando el compatibilidad con criterio común habilitada está habilitada la opción de configuración del servidor, se muestran las estadísticas de inicio de sesión en las siguientes columnas.When the common criteria compliance enabled server configuration option is enabled, logon statistics are displayed in the following columns.

Cardinalidades de relaciónRelationship Cardinalities

DeFrom ParaTo En / ApplyOn/Apply RelaciónRelationship
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_requestssys.dm_exec_requests session_idsession_id Uno a ninguno o uno a variosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_connectionssys.dm_exec_connections session_idsession_id Uno a ninguno o uno a variosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_tran_session_transactionssys.dm_tran_session_transactions session_idsession_id Uno a ninguno o uno a variosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions Sys.dm_exec_cursors(session_id | 0)sys.dm_exec_cursors(session_id | 0) session_id CROSS APPLYsession_id CROSS APPLY

OUTER APPLYOUTER APPLY
Uno a ninguno o uno a variosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_db_session_space_usagesys.dm_db_session_space_usage session_idsession_id Uno a unoOne-to-one

EjemplosExamples

A.A. Buscar usuarios conectados al servidorFinding users that are connected to the server

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.The following example finds the users that are connected to the server and returns the number of sessions for each user.

SELECT login_name ,COUNT(session_id) AS session_count   
FROM sys.dm_exec_sessions   
GROUP BY login_name;  

B.B. Buscar cursores de ejecución prolongadaFinding long-running cursors

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.The following example finds the cursors that have been open for more than a specific period of time, who created the cursors, and what session the cursors are on.

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.C. Buscar sesiones inactivas que tienen transacciones abiertasFinding idle sessions that have open transactions

En el ejemplo siguiente se buscan sesiones que tienen transacciones abiertas y están inactivas.The following example finds sessions that have open transactions and are idle. Una sesión inactiva es aquélla que no tiene ninguna solicitud en ejecución.An idle session is one that has no request currently running.

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.D. Buscar información sobre una conexión propietaria de consultasFinding information about a queries own connection

Consulta típica para recopilar información sobre una conexión solo para consultas.Typical query to gather information about a queries own connection.

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;  

Vea tambiénSee Also

Funciones y vistas de administración dinámica (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Funciones y vistas de administración dinámica ( relacionada con la ejecución Transact-SQL )Execution Related Dynamic Management Views and Functions (Transact-SQL)