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

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retourne une ligne par session authentifiée sur SQL ServerSQL Server.Returns one row per authenticated session on SQL ServerSQL Server. sys.dm_exec_sessions est une vue dans l'étendue du serveur qui affiche des informations sur toutes les connexions utilisateur et les tâches internes actives.sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. Ces informations concernent la version du client, le nom du programme client, l'heure de connexion du client, l'utilisateur connecté, le paramètre de session en cours, etc.This information includes client version, client program name, client login time, login user, current session setting, and more. Utilisez sys.dm_exec_sessions pour d'abord consulter la charge système en cours et pour identifier une session d'intérêt, puis pour en savoir plus sur cette session en faisant appel à d'autres vues ou fonctions de gestion dynamique.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.

Les vues de gestion dynamique sys. dm_exec_connections, sys. dm_exec_sessions et sys. dm_exec_requests sont mappées à la table système sys. sysprocesses .The sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests dynamic management views map to the sys.sysprocesses system table.

Remarque : Pour l’appeler à partir de Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) ou Parallel Data WarehouseParallel Data Warehouse, utilisez le nom sys. dm_pdw_nodes_exec_sessions.NOTE: To call this from Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_sessions.

Nom de la colonneColumn name Type de donnéesData type Description et informations spécifiques à la versionDescription and version-specific information
session_idsession_id smallintsmallint Identifie la session associée à chaque connexion principale active.Identifies the session associated with each active primary connection. N'accepte pas la valeur NULL.Is not nullable.
login_timelogin_time datetimedatetime Heure à laquelle la session a été établie.Time when session was established. N'accepte pas la valeur NULL.Is not nullable.
host_namehost_name nvarchar(128)nvarchar(128) Nom de la station de travail cliente spécifique à une session.Name of the client workstation that is specific to a session. La valeur est NULL pour les sessions internes.The value is NULL for internal sessions. Autorise la valeur NULL.Is nullable.

Remarque relative à la sécurité : L’application cliente fournit le nom de la station de travail et peut fournir des données inexactes.Security Note: The client application provides the workstation name and can provide inaccurate data. Ne vous fiez pas à HOST_NAME pour garantir la sécurité.Do not rely upon HOST_NAME as a security feature.
program_nameprogram_name nvarchar(128)nvarchar(128) Nom du programme client qui a lancé la session.Name of client program that initiated the session. La valeur est NULL pour les sessions internes.The value is NULL for internal sessions. Autorise la valeur NULL.Is nullable.
host_process_idhost_process_id intint ID de processus du programme client qui a lancé la session.Process ID of the client program that initiated the session. La valeur est NULL pour les sessions internes.The value is NULL for internal sessions. Autorise la valeur NULL.Is nullable.
client_versionclient_version intint Version du protocole TDS de l'interface utilisée par le client pour se connecter au serveur.TDS protocol version of the interface that is used by the client to connect to the server. La valeur est NULL pour les sessions internes.The value is NULL for internal sessions. Autorise la valeur NULL.Is nullable.
client_interface_nameclient_interface_name nvarchar(32)nvarchar(32) Nom de la bibliothèque/du pilote utilisé par le client pour communiquer avec le serveur.Name of library/driver being used by the client to communicate with the server. La valeur est NULL pour les sessions internes.The value is NULL for internal sessions. Autorise la valeur NULL.Is nullable.
security_idsecurity_id varbinary(85)varbinary(85) ID de sécurité Microsoft Windows associé à la connexion.Microsoft Windows security ID associated with the login. N'accepte pas la valeur NULL.Is not nullable.
login_namelogin_name nvarchar(128)nvarchar(128) Nom de connexion SQL ServerSQL Server sous lequel la session s'exécute actuellement.SQL ServerSQL Server login name under which the session is currently executing. Pour connaître le nom de connexion d'origine qui a créé la session, consulez original_login_name.For the original login name that created the session, see original_login_name. Il peut s’agir d’un nom de connexion SQL ServerSQL Server authentifié ou d’un nom d’utilisateur de domaine authentifié Windows.Can be a SQL ServerSQL Server authenticated login name or a Windows authenticated domain user name. N'accepte pas la valeur NULL.Is not nullable.
nt_domainnt_domain nvarchar(128)nvarchar(128) S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

Domaine Windows du client si la session utilise l'authentification Windows ou une connexion approuvée.Windows domain for the client if the session is using Windows Authentication or a trusted connection. La valeur est NULL pour les sessions internes et les utilisateurs qui n'appartiennent pas à un domaine.This value is NULL for internal sessions and non-domain users. Autorise la valeur NULL.Is nullable.
nt_user_nament_user_name nvarchar(128)nvarchar(128) S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

Nom d'utilisateur Windows du client si la session utilise l'authentification Windows ou une connexion approuvée.Windows user name for the client if the session is using Windows Authentication or a trusted connection. La valeur est NULL pour les sessions internes et les utilisateurs qui n'appartiennent pas à un domaine.This value is NULL for internal sessions and non-domain users. Autorise la valeur NULL.Is nullable.
statusstatus nvarchar(30)nvarchar(30) État de la session.Status of the session. Valeurs possibles :Possible values:

En cours d’exécution-en cours d’exécution d’une ou de plusieurs demandesRunning - Currently running one or more requests

En veille -aucune demande en cours d’exécutionSleeping - Currently running no requests

Dormant -la session a été réinitialisée en raison d’un regroupement de connexions et est désormais dans un état de préconnexion.Dormant - Session has been reset because of connection pooling and is now in prelogin state.

PreConnect -session se trouve dans le classifieur Resource Governor.Preconnect - Session is in the Resource Governor classifier.

N'accepte pas la valeur NULL.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) Valeur CONTEXT_INFO pour la session.CONTEXT_INFO value for the session. Les informations de contexte sont définies par l’utilisateur à l’aide de l’instruction set CONTEXT_INFO .The context information is set by the user by using the SET CONTEXT_INFO statement. Autorise la valeur NULL.Is nullable.
cpu_timecpu_time intint Temps processeur, en millisecondes, utilisé par cette session.CPU time, in milliseconds, that was used by this session. N'accepte pas la valeur NULL.Is not nullable.
memory_usagememory_usage intint Nombre de pages de mémoire de 8 Ko utilisées par cette session.Number of 8-KB pages of memory used by this session. N'accepte pas la valeur NULL.Is not nullable.
total_scheduled_timetotal_scheduled_time intint Durée totale, en millisecondes, pour laquelle l'exécution de la session (demandes comprises) a été planifiée.Total time, in milliseconds, for which the session (requests within) were scheduled for execution. N'accepte pas la valeur NULL.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Temps écoulé, en millisecondes, depuis que la session a été établie.Time, in milliseconds, since the session was established. N'accepte pas la valeur NULL.Is not nullable.
endpoint_idendpoint_id intint ID du point de terminaison associé à la session.ID of the Endpoint associated with the session. N'accepte pas la valeur NULL.Is not nullable.
last_request_start_timelast_request_start_time datetimedatetime Heure à laquelle la dernière demande de la session a commencé.Time at which the last request on the session began. Cela inclut la demande en cours.This includes the currently executing request. N'accepte pas la valeur NULL.Is not nullable.
last_request_end_timelast_request_end_time datetimedatetime Heure à laquelle s'est terminée pour la dernière fois une demande de la session.Time of the last completion of a request on the session. Autorise la valeur NULL.Is nullable.
readsreads bigintbigint Nombre de lectures effectuées (par des demandes dans cette session) au cours de cette session.Number of reads performed, by requests in this session, during this session. N'accepte pas la valeur NULL.Is not nullable.
writeswrites bigintbigint Nombre d'écritures effectuées (par des demandes dans cette session) au cours de cette session.Number of writes performed, by requests in this session, during this session. N'accepte pas la valeur NULL.Is not nullable.
logical_readslogical_reads bigintbigint Nombre de lectures logiques qui ont été effectuées sur cette session.Number of logical reads that have been performed on the session. N'accepte pas la valeur NULL.Is not nullable.
is_user_processis_user_process bitbit 0 si la session est une session système.0 if the session is a system session. Dans le cas contraire, il s’agit de 1.Otherwise, it is 1. N'accepte pas la valeur NULL.Is not nullable.
text_sizetext_size intint Paramètre TEXTSIZE pour la session.TEXTSIZE setting for the session. N'accepte pas la valeur NULL.Is not nullable.
langagelanguage nvarchar(128)nvarchar(128) Paramètre LANGUAGE pour la session.LANGUAGE setting for the session. Autorise la valeur NULL.Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) Paramètre DATEFORMAT pour la session.DATEFORMAT setting for the session. Autorise la valeur NULL.Is nullable.
date_firstdate_first smallintsmallint Paramètre DATEFIRST pour la session.DATEFIRST setting for the session. N'accepte pas la valeur NULL.Is not nullable.
quoted_identifierquoted_identifier bitbit Paramètre QUOTED_IDENTIFIER pour la session.QUOTED_IDENTIFIER setting for the session. N'accepte pas la valeur NULL.Is not nullable.
arithabortarithabort bitbit Paramètre ARITHABORT pour la session.ARITHABORT setting for the session. N'accepte pas la valeur NULL.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit Paramètre ANSI_NULL_DFLT_ON pour la session.ANSI_NULL_DFLT_ON setting for the session. N'accepte pas la valeur NULL.Is not nullable.
ansi_defaultsansi_defaults bitbit Paramètre ANSI_DEFAULTS pour la session.ANSI_DEFAULTS setting for the session. N'accepte pas la valeur NULL.Is not nullable.
ansi_warningsansi_warnings bitbit Paramètre ANSI_WARNINGS pour la session.ANSI_WARNINGS setting for the session. N'accepte pas la valeur NULL.Is not nullable.
ansi_paddingansi_padding bitbit Paramètre ANSI_PADDING pour la session.ANSI_PADDING setting for the session. N'accepte pas la valeur NULL.Is not nullable.
ansi_nullsansi_nulls bitbit Paramètre ANSI_NULLS pour la session.ANSI_NULLS setting for the session. N'accepte pas la valeur NULL.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit Paramètre CONCAT_NULL_YIELDS_NULL pour la session.CONCAT_NULL_YIELDS_NULL setting for the session. N'accepte pas la valeur NULL.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Niveau d'isolement des transactions de la session.Transaction isolation level of the session.

0 = Non spécifié0 = Unspecified

1 = Lecture non validée1 = ReadUncomitted

2 = Lecture validée2 = ReadCommitted

3 = Répétable3 = Repeatable

4 = Sérialisable4 = Serializable

5 = Instantané5 = Snapshot

N'accepte pas la valeur NULL.Is not nullable.
lock_timeoutlock_timeout intint Paramètre LOCK_TIMEOUT pour la session.LOCK_TIMEOUT setting for the session. Cette valeur est exprimée en millisecondes.The value is in milliseconds. N'accepte pas la valeur NULL.Is not nullable.
deadlock_prioritydeadlock_priority intint Paramètre DEADLOCK_PRIORITY pour la session.DEADLOCK_PRIORITY setting for the session. N'accepte pas la valeur NULL.Is not nullable.
row_countrow_count bigintbigint Nombre de lignes retournées dans la session jusqu'à présent.Number of rows returned on the session up to this point. N'accepte pas la valeur NULL.Is not nullable.
prev_errorprev_error intint ID de la dernière erreur retournée dans la session.ID of the last error returned on the session. N'accepte pas la valeur NULL.Is not nullable.
original_security_idoriginal_security_id varbinary(85)varbinary(85) ID de sécurité MicrosoftMicrosoft Windows qui est associé à original_login_name.MicrosoftMicrosoft Windows security ID that is associated with the original_login_name. N'accepte pas la valeur NULL.Is not nullable.
original_login_nameoriginal_login_name nvarchar(128)nvarchar(128) Nom de connexion SQL ServerSQL Server utilisé par le client pour créer cette session.SQL ServerSQL Server login name that the client used to create this session. Il peut s'agir d'un nom de compte de connexion authentifié SQL ServerSQL Server, d'un nom d'utilisateur de domaine authentifié Windows ou d'un utilisateur de base de données autonome.Can be a SQL ServerSQL Server authenticated login name, a Windows authenticated domain user name, or a contained database user. Notez que la session a pu faire l'objet de nombreux changements de contexte implicites ou explicites après la connexion initiale.Note that the session could have gone through many implicit or explicit context switches after the initial connection. Par exemple, si Execute As est utilisé.For example, if EXECUTE AS is used. N'accepte pas la valeur NULL.Is not nullable.
last_successful_logonlast_successful_logon datetimedatetime S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

Heure de la dernière ouverture de session réussie pour original_login_name avant le démarrage de la session actuelle.Time of the last successful logon for the original_login_name before the current session started.
last_unsuccessful_logonlast_unsuccessful_logon datetimedatetime S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

Heure de la dernière ouverture de session qui a échoué pour original_login_name avant le démarrage de la session actuelle.Time of the last unsuccessful logon attempt for the original_login_name before the current session started.
unsuccessful_logonsunsuccessful_logons bigintbigint S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures.Applies to: SQL Server 2008SQL Server 2008 and later.

Nombre d'ouvertures de sessions ayant échoué pour original_login_name entre last_successful_logon et login_time.Number of unsuccessful logon attempts for the original_login_name between the last_successful_logon and login_time.
group_idgroup_id intint ID du groupe de charge de travail auquel cette session appartient.ID of the workload group to which this session belongs. N'accepte pas la valeur NULL.Is not nullable.
database_iddatabase_id smallintsmallint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

ID de la base de données active pour chaque session.ID of the current database for each session.
authenticating_database_idauthenticating_database_id intint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

ID de la base de données authentifiant le principal.ID of the database authenticating the principal. Pour les comptes de connexion, la valeur sera de 0.For Logins, the value will be 0. Pour les utilisateurs de base de données non autonome, la valeur sera l'ID de la base de données autonome.For contained database users, the value will be the database ID of the contained database.
open_transaction_countopen_transaction_count intint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Nombre de transactions ouvertes par session.Number of open transactions per session.
pdw_node_idpdw_node_id intint S’applique à: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data Warehouse

Identificateur du nœud sur lequel cette distribution se trouve.The identifier for the node that this distribution is on.
page_server_readspage_server_reads bigintbigint S’applique à: Azure SQL Database hyperscaleApplies to: Azure SQL Database Hyperscale

Nombre de lectures du serveur de pages effectuées, par demandes dans cette session, au cours de cette session.Number of page server reads performed, by requests in this session, during this session. N'accepte pas la valeur NULL.Is not nullable.

AutorisationsPermissions

Tout le monde peut voir ses propres informations de session.Everyone can see their own session information.
SQL ServerSQL Server: Requiert VIEW SERVER STATE autorisation sur SQL ServerSQL Server pour voir toutes les sessions sur le serveur.SQL ServerSQL Server: Requires VIEW SERVER STATE permission on SQL ServerSQL Server to see all sessions on the server.
SQL DatabaseSQL Database: Requiert VIEW DATABASE STATE pour voir toutes les connexions à la base de données actuelle.SQL DatabaseSQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. les VIEW DATABASE STATE ne peuvent pas être accordées dans la base de données master.VIEW DATABASE STATE cannot be granted in the master database.

NotesRemarks

Lorsque l’option de configuration de serveur conformité aux critères communs est activée, les statistiques de connexion s’affichent dans les colonnes suivantes.When the common criteria compliance enabled server configuration option is enabled, logon statistics are displayed in the following columns.

  • last_successful_logonlast_successful_logon

  • last_unsuccessful_logonlast_unsuccessful_logon

  • unsuccessful_logonsunsuccessful_logons

Si cette option n'est pas activée, ces colonnes retournent des valeurs NULL.If this option is not enabled, these columns will return null values. Pour plus d’informations sur la façon de définir cette option de configuration de serveur, voir Common Criteria Compliance Enabled option de configuration de serveur.For more information about how to set this server configuration option, see common criteria compliance enabled Server Configuration Option.

Les connexions administrateur sur Azure SQL Database verront une ligne par session authentifiée.The admin connections on Azure SQL Database will see one row per authenticated session. Les sessions « sa » qui apparaissent dans le jeu de résultats n’ont aucun impact sur le quota d’utilisateur pour les sessions.The "sa" sessions that appear in the resultset, do not have any impact on the user quota for sessions. Les connexions non administrateur ne voient que les informations relatives à leurs sessions utilisateur de base de données.The non-admin connections will only see information related to their database user sessions.

Cardinalités de la relationRelationship Cardinalities

DeFrom PourTo Actif/AppliquerOn/Apply RelationRelationship
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_requestssys.dm_exec_requests session_idsession_id Un-à-zéro ou un-à-plusieursOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_connectionssys.dm_exec_connections session_idsession_id Un-à-zéro ou un-à-plusieursOne-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 Un-à-zéro ou un-à-plusieursOne-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
Un-à-zéro ou un-à-plusieursOne-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 Un à unOne-to-one

ExemplesExamples

A.A. Recherche des utilisateurs connectés au serveurFinding users that are connected to the server

L'exemple suivant recherche les utilisateurs connectés au serveur et retourne le nombre de sessions pour chaque utilisateur.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. Recherche des curseurs longsFinding long-running cursors

L'exemple suivant recherche les curseurs qui sont ouverts pendant plus longtemps que la durée fixée, l'auteur des curseurs et la session à laquelle appartiennent les curseurs.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. Recherche des sessions inactives ayant des transactions ouvertesFinding idle sessions that have open transactions

L'exemple suivant recherche des sessions inactives ayant des transactions ouvertes.The following example finds sessions that have open transactions and are idle. Une session inactive est une session qui n'a pas de demande en cours d'exécution.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. Recherche d'informations à propos d'une connexion propre aux requêtesFinding information about a queries own connection

Requête typique pour collecter des informations sur une connexion propre aux requêtes.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;  

Voir aussiSee Also

Fonctions et vues de gestion dynamique (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Fonctions et vues de gestion dynamique relatives aux exécutions (Transact-SQL)Execution Related Dynamic Management Views and Functions (Transact-SQL)