sys.dm_exec_sessions (Transact-SQL)

 

CETTE RUBRIQUE S’APPLIQUE À : ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data WarehouseouiParallel Data Warehouse

Retourne une ligne par session authentifiée sur SQL 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. 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. 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.

Vues de gestion dynamique sys.dm_exec_connections, sys.dm_exec_sessions et sys.dm_exec_requests mappent à la sys.sysprocesses (table système).

Remarque : à appeler à partir Azure SQL Data Warehouse ou Parallel Data Warehouse, utilisez le nom sys.dm_pdw_nodes_exec_sessions.

Nom de colonneType de donnéesDescription et les informations spécifiques à la version
session_idsmallintIdentifie la session associée à chaque connexion principale active. N'accepte pas la valeur NULL.
login_timedate/heureHeure à laquelle la session a été établie. N'accepte pas la valeur NULL.
host_namenvarchar (128)Nom de la station de travail cliente spécifique à une session. La valeur est NULL pour les sessions internes. Autorise la valeur NULL.

 Note de sécurité : l’application cliente fournit le nom de la station de travail et peut fournir des données inexactes. Ne vous fiez pas à HOST_NAME pour garantir la sécurité.
program_namenvarchar (128)Nom du programme client qui a lancé la session. La valeur est NULL pour les sessions internes. Autorise la valeur NULL.
host_process_idintID de processus du programme client qui a lancé la session. La valeur est NULL pour les sessions internes. Autorise la valeur NULL.
client_versionintVersion du protocole TDS de l'interface utilisée par le client pour se connecter au serveur. La valeur est NULL pour les sessions internes. Autorise la valeur NULL.
client_interface_namenvarchar (32)Nom du protocole utilisé par le client pour se connecter au serveur. La valeur est NULL pour les sessions internes. Autorise la valeur NULL.
security_idvarbinary(85)ID de sécurité Microsoft Windows associé à la connexion. N'accepte pas la valeur NULL.
login_namenvarchar (128)Nom de connexion SQL Server sous lequel la session s'exécute actuellement. Pour connaître le nom de connexion d'origine qui a créé la session, consulez original_login_name. Peut être un SQL Server authentifié nom de connexion ou un nom d’utilisateur de domaine authentifié Windows. N'accepte pas la valeur NULL.
nt_domainnvarchar (128)S'applique à: SQL Server 2008 et SQL Server 2016.

Domaine Windows du client si la session utilise l'authentification Windows ou une connexion approuvée. La valeur est NULL pour les sessions internes et les utilisateurs qui n'appartiennent pas à un domaine. Autorise la valeur NULL.
nt_user_namenvarchar (128)S'applique à: SQL Server 2008 et SQL Server 2016.

Nom d'utilisateur Windows du client si la session utilise l'authentification Windows ou une connexion approuvée. La valeur est NULL pour les sessions internes et les utilisateurs qui n'appartiennent pas à un domaine. Autorise la valeur NULL.
statusnvarchar (30)État de la session. Valeurs possibles :

 En cours d’exécution -une ou plusieurs demandes en cours d’exécution

 Mise en veille -aucune demande en cours d’exécution

 Dormant – Session a été réinitialisée en raison de regroupement de connexions et est désormais dans un état de préconnexion.

 Préconnexion -Session est dans le classifieur du gouverneur de ressources.

N'accepte pas la valeur NULL.
context_infovarbinary (128)Valeur CONTEXT_INFO pour la session. Les informations de contexte sont définies par l’utilisateur à l’aide de la SET CONTEXT_INFO instruction. Autorise la valeur NULL.
cpu_timeintTemps processeur, en millisecondes, utilisé par cette session. N'accepte pas la valeur NULL.
memory_usageintNombre de pages de mémoire de 8 Ko utilisées par cette session. N'accepte pas la valeur NULL.
total_scheduled_timeintDurée totale, en millisecondes, pour laquelle l'exécution de la session (demandes comprises) a été planifiée. N'accepte pas la valeur NULL.
total_elapsed_timeintTemps écoulé, en millisecondes, depuis que la session a été établie. N'accepte pas la valeur NULL.
endpoint_idintID du point de terminaison associé à la session. N'accepte pas la valeur NULL.
last_request_start_timedate/heureHeure à laquelle la dernière demande de la session a commencé. Cela inclut la demande en cours. N'accepte pas la valeur NULL.
last_request_end_timedate/heureHeure à laquelle s'est terminée pour la dernière fois une demande de la session. Autorise la valeur NULL.
readsbigintNombre de lectures effectuées (par des demandes dans cette session) au cours de cette session. N'accepte pas la valeur NULL.
writesbigintNombre d'écritures effectuées (par des demandes dans cette session) au cours de cette session. N'accepte pas la valeur NULL.
logical_readsbigintNombre de lectures logiques qui ont été effectuées sur cette session. N'accepte pas la valeur NULL.
is_user_processbits0 si la session est une session système. Dans le cas contraire, il est 1. N'accepte pas la valeur NULL.
text_sizeintParamètre TEXTSIZE pour la session. N'accepte pas la valeur NULL.
languenvarchar (128)Paramètre LANGUAGE pour la session. Autorise la valeur NULL.
date_formatnvarchar(3)Paramètre DATEFORMAT pour la session. Autorise la valeur NULL.
date_firstsmallintParamètre DATEFIRST pour la session. N'accepte pas la valeur NULL.
quoted_identifierbitsParamètre QUOTED_IDENTIFIER pour la session. N'accepte pas la valeur NULL.
arithabortbitsParamètre ARITHABORT pour la session. N'accepte pas la valeur NULL.
ansi_null_dflt_onbitsParamètre ANSI_NULL_DFLT_ON pour la session. N'accepte pas la valeur NULL.
ansi_defaultsbitsParamètre ANSI_DEFAULTS pour la session. N'accepte pas la valeur NULL.
ansi_warningsbitsParamètre ANSI_WARNINGS pour la session. N'accepte pas la valeur NULL.
ansi_paddingbitsParamètre ANSI_PADDING pour la session. N'accepte pas la valeur NULL.
ansi_nullsbitsParamètre ANSI_NULLS pour la session. N'accepte pas la valeur NULL.
concat_null_yields_nullbitsParamètre CONCAT_NULL_YIELDS_NULL pour la session. N'accepte pas la valeur NULL.
transaction_isolation_levelsmallintNiveau d'isolement des transactions de la session.

0 = Non spécifié

1 = Lecture non validée

2 = Lecture validée

3 = Répétable

4 = Sérialisable

5 = Instantané

N'accepte pas la valeur NULL.
lock_timeoutintParamètre LOCK_TIMEOUT pour la session. Cette valeur est exprimée en millisecondes. N'accepte pas la valeur NULL.
deadlock_priorityintParamètre DEADLOCK_PRIORITY pour la session. N'accepte pas la valeur NULL.
row_countbigintNombre de lignes retournées dans la session jusqu'à présent. N'accepte pas la valeur NULL.
prev_errorintID de la dernière erreur retournée dans la session. N'accepte pas la valeur NULL.
original_security_idvarbinary(85)ID de sécurité Microsoft Windows qui est associé à original_login_name. N'accepte pas la valeur NULL.
original_login_namenvarchar (128)Nom de connexion SQL Server utilisé par le client pour créer cette session. Il peut s'agir d'un nom de compte de connexion authentifié SQL Server, d'un nom d'utilisateur de domaine authentifié Windows ou d'un utilisateur de base de données à relation contenant-contenu. Notez que la session a pu faire l'objet de nombreux changements de contexte implicites ou explicites après la connexion initiale. Par exemple, si EXECUTE AS est utilisé. N'accepte pas la valeur NULL.
last_successful_logondate/heureS'applique à: SQL Server 2008 et SQL Server 2016.

Heure de la dernière ouverture de session réussie pour original_login_name avant le démarrage de la session actuelle.
last_unsuccessful_logondate/heureS'applique à: SQL Server 2008 et SQL Server 2016.

Heure de la dernière ouverture de session qui a échoué pour original_login_name avant le démarrage de la session actuelle.
unsuccessful_logonsbigintS'applique à: SQL Server 2008 et SQL Server 2016.

Nombre d'ouvertures de sessions ayant échoué pour original_login_name entre last_successful_logon et login_time.
group_idintID du groupe de charge de travail auquel cette session appartient. N'accepte pas la valeur NULL.
database_idsmallintS'applique à: SQL Server 2012 et SQL Server 2016.

ID de la base de données active pour chaque session.
authenticating_database_idintS'applique à: SQL Server 2012 et SQL Server 2016.

ID de la base de données authentifiant le principal. Pour les comptes de connexion, la valeur sera de 0. Pour les utilisateurs de base de données à relation contenant-contenu, la valeur sera l'ID de la base de données à relation contenant-contenu.
open_transaction_countintS'applique à: SQL Server 2012 et SQL Server 2016.

Nombre de transactions ouvertes par session.
« pdw_node_id »intS’applique aux: Azure SQL Data Warehouse,Parallel Data Warehouse

L’identificateur pour le nœud de cette distribution.

Tout le monde peut voir leurs propres informations de session.
SQL Server: Requiert VIEW SERVER STATE autorisation sur SQL Server pour voir toutes les sessions sur le serveur.
Base de données SQL: Requiert VIEW DATABASE STATE pour voir toutes les connexions à la base de données actuelle. VIEW DATABASE STATEne peut pas être accordé dans le master base de données.

Lors de la conformité des critères communs configuration du serveur est activée, les statistiques d’ouverture de session sont affichées dans les colonnes suivantes.

  • last_successful_logon

  • last_unsuccessful_logon

  • unsuccessful_logons

Si cette option n'est pas activée, ces colonnes retournent des valeurs NULL. Pour plus d’informations sur la définition de ce serveur option de configuration, consultez la page conformité des critères communs activée l’Option de Configuration.

DePourActif/AppliquerRelation
sys.dm_exec_sessionsSys.dm_exec_requestssession_idUn-à-zéro ou un-à-plusieurs
sys.dm_exec_sessionsSys.dm_exec_connectionssession_idUn-à-zéro ou un-à-plusieurs
sys.dm_exec_sessionsSys.dm_tran_session_transactionssession_idUn-à-zéro ou un-à-plusieurs
sys.dm_exec_sessionsSys.dm_exec_cursors(session_id0)session_id CROSS APPLY

OUTER APPLY
Un-à-zéro ou un-à-plusieurs
sys.dm_exec_sessionsSys.dm_db_session_space_usagesession_idUn à un

A. Recherche des utilisateurs connectés au serveur

L'exemple suivant recherche les utilisateurs connectés au serveur et retourne le nombre de sessions pour chaque utilisateur.

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

B. Recherche des curseurs longs

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.

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. Recherche des sessions inactives ayant des transactions ouvertes

L'exemple suivant recherche des sessions inactives ayant des transactions ouvertes. Une session inactive est une session qui n'a pas de demande en cours d'exécution.

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. Recherche d'informations à propos d'une connexion propre aux requêtes

Requête typique pour collecter des informations sur une connexion propre aux requêtes.

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;  

Vues de gestion dynamique et fonctions (Transact-SQL)
Fonctions (Transact-SQL) et les vues de gestion dynamique liées à l’exécution

Ajouts de la communauté

AJOUTER
Afficher: