sys.dm_exec_sessions
Mis à jour : 12 décembre 2006
Retourne une ligne par session authentifiée dans 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.
Les vues de gestion dynamique sys.dm_exec_connections, sys.dm_exec_sessions et sys.dm_exec_requests mappent à la table système sys.sysprocesses.
Nom de colonne | Type de données | Description |
---|---|---|
session_id |
smallint |
Identifie la session associée à chaque connexion principale active. Cette colonne n'accepte pas la valeur NULL. |
login_time |
datetime |
Date et heure auxquelles la session a été établie. Cette colonne n'accepte pas la valeur NULL. |
host_name |
nvarchar(128) |
Nom de la station de travail cliente spécifique à une session. La valeur est NULL pour les sessions internes. Accepte la valeur NULL. |
program_name |
nvarchar(128) |
Nom du programme client qui a lancé la session. La valeur est NULL pour les sessions internes. Accepte la valeur NULL. |
host_process_id |
int |
ID de processus du programme client qui a lancé la session. La valeur est NULL pour les sessions internes. Accepte la valeur NULL. |
client_version |
int |
Version du protocole TDS de l'interface utilisée par le client pour se connecter au serveur. La valeur est NULL pour les sessions internes. Accepte la valeur NULL. |
client_interface_name |
nvarchar(32) |
Nom du protocole utilisé par le client pour se connecter au serveur. La valeur est NULL pour les sessions internes. Accepte la valeur NULL. |
security_id |
varbinary(85) |
ID de sécurité Microsoft Windows associé à la connexion. Cette colonne n'accepte pas la valeur NULL. |
login_name |
nvarchar(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. Il peut s'agir d'un nom de connexion authentifié SQL Server ou d'un nom d'utilisateur de domaine authentifié Windows. Cette colonne n'accepte pas la valeur NULL. |
nt_domain |
nvarchar(128) |
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. Accepte la valeur NULL. |
nt_user_name |
nvarchar(128) |
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. Accepte la valeur NULL. |
status |
nvarchar(30) |
État de la session. Valeurs possibles :
Cette colonne n'accepte pas la valeur NULL. |
context_info |
varbinary(128) |
Valeur CONTEXT_INFO pour la session. Les informations de contexte sont définies par l'utilisateur à l'aide de l'instruction SET CONTEXT_INFO. Accepte la valeur NULL. |
cpu_time |
int |
Temps processeur, en millisecondes, utilisé par cette session. Cette colonne n'accepte pas la valeur NULL. |
memory_usage |
int |
Nombre de pages de mémoire de 8 Ko utilisées par cette session. Cette colonne n'accepte pas la valeur NULL. |
total_scheduled_time |
int |
Durée totale, en millisecondes, pour laquelle l'exécution de la session (demandes comprises) a été planifiée. Cette colonne n'accepte pas la valeur NULL. |
total_elapsed_time |
int |
Temps écoulé, en millisecondes, depuis que la session a été établie. Cette colonne n'accepte pas la valeur NULL. |
endpoint_id |
int |
ID du point de terminaison associé à la session. Cette colonne n'accepte pas la valeur NULL. |
last_request_start_time |
datetime |
Heure à laquelle la dernière demande de la session a commencé. Cela inclut la demande en cours. Cette colonne n'accepte pas la valeur NULL. |
last_request_end_time |
datetime |
Heure à laquelle s'est terminée pour la dernière fois une demande de la session. Accepte la valeur NULL. |
reads |
bigint |
Nombre de lectures effectuées (par des demandes dans cette session) au cours de cette session. Cette colonne n'accepte pas la valeur NULL. |
writes |
bigint |
Nombre d'écritures effectuées (par des demandes dans cette session) au cours de cette session. Cette colonne n'accepte pas la valeur NULL. |
logical_reads |
bigint |
Nombre de lectures logiques qui ont été effectuées sur cette session. Cette colonne n'accepte pas la valeur NULL. |
is_user_process |
bit |
0 si la session est une session système. Sinon, la valeur est 1. N'accepte pas la valeur NULL. |
text_size |
int |
Paramètre TEXTSIZE pour la session. Cette colonne n'accepte pas la valeur NULL. |
language |
nvarchar(128) |
Paramètre LANGUAGE pour la session. Accepte la valeur NULL. |
date_format |
nvarchar(3) |
Paramètre DATEFORMAT pour la session. Accepte la valeur NULL. |
date_first |
smallint |
Paramètre DATEFIRST pour la session. Cette colonne n'accepte pas la valeur NULL. |
quoted_identifier |
bit |
Paramètre QUOTED_IDENTIFIER pour la session. Cette colonne n'accepte pas la valeur NULL. |
arithabort |
bit |
Paramètre ARITHABORT pour la session. Cette colonne n'accepte pas la valeur NULL. |
ansi_null_dflt_on |
bit |
Paramètre ANSI_NULL_DFLT_ON pour la session. Cette colonne n'accepte pas la valeur NULL. |
ansi_defaults |
bit |
Paramètre ANSI_DEFAULTS pour la session. Cette colonne n'accepte pas la valeur NULL. |
ansi_warnings |
bit |
Paramètre ANSI_WARNINGS pour la session. Cette colonne n'accepte pas la valeur NULL. |
ansi_padding |
bit |
Paramètre ANSI_PADDING pour la session. Cette colonne n'accepte pas la valeur NULL. |
ansi_nulls |
bit |
Paramètre ANSI_NULLS pour la session. Cette colonne n'accepte pas la valeur NULL. |
concat_null_yields_null |
bit |
Paramètre CONCAT_NULL_YIELDS_NULL pour la session. Cette colonne n'accepte pas la valeur NULL. |
transaction_isolation_level |
smallint |
Niveau 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érialisée 5 = Capture instantanée Cette colonne n'accepte pas la valeur NULL. |
lock_timeout |
int |
Paramètre LOCK_TIMEOUT pour la session. Cette valeur est exprimée en millisecondes. Cette colonne n'accepte pas la valeur NULL. |
deadlock_priority |
int |
Paramètre DEADLOCK_PRIORITY pour la session. Cette colonne n'accepte pas la valeur NULL. |
row_count |
bigint |
Nombre de lignes retournées dans la session jusqu'à présent. Cette colonne n'accepte pas la valeur NULL. |
prev_error |
int |
ID de la dernière erreur retournée dans la session. Cette colonne n'accepte pas la valeur NULL. |
original_security_id |
varbinary(85) |
Identificateur de sécurité Microsoft Windows qui est associé au original_login_name. N'accepte pas la valeur NULL. |
original_login_name |
nvarchar(128) |
Nom de connexion SQL Server utilisé par le client pour créer cette session. Il peut s'agir d'un nom de connexion authentifié SQL Server ou d'un nom d'utilisateur de domaine authentifié Windows. 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_logon |
datetime |
Heure de la dernière ouverture de session réussie pour original_login_name avant le démarrage de la session actuelle. |
last_unsuccessful_logon |
datetime |
Heure de la dernière ouverture de session qui a échoué pour original_login_name avant le démarrage de la session actuelle. |
unsuccessful_logons |
bigint |
Nombre d'ouvertures de sessions ayant échoué pour original_login_name entre last_successful_logon et login_time. |
Autorisations
Nécessite l'autorisation VIEW SERVER STATE sur le serveur.
Remarque : |
---|
Si l'utilisateur bénéficie de l'autorisation VIEW SERVER STATE sur le serveur, il pourra voir toutes les sessions en cours d'exécution de l'instance de SQL Server ; sinon, il ne verra que la session en cours. |
Notes
Statistiques de connexion pour la conformité à la norme Critères communs
Lorsque l'option Activer la conformité des critères communs est activée à l'aide de la procédure stockée sp_configure, les statistiques de connexion sont stockées et affichées dans les colonnes suivantes de sys.dm_exec_sessions :
- last_successful_logon
- last_unsuccessful_logon
- unsuccessful_logons
Si cette option de configuration du serveur n'est pas activée, ces colonnes sys.dm_exec_sessions retournent des valeurs Null. Pour plus d'informations sur la définition de cette option de configuration du serveur, consultez Option de conformité des critères communs activée.
Cardinalités de la relation
De | Pour | Actif/Appliquer | Relation |
---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests |
session_id |
Un-à-zéro ou un-à-plusieurs |
sys.dm_exec_sessions |
sys.dm_exec_connections |
session_id |
Un-à-zéro ou un-à-plusieurs |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions |
session_id |
Un-à-zéro ou un-à-plusieurs |
sys.dm_exec_sessions |
sys.dm_exec_cursors(session_id | 0) |
session_id CROSS APPLY OUTER APPLY |
Un-à-zéro ou un-à-plusieurs |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage |
session_id |
Un à un |
Exemples
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
);
Voir aussi
Référence
Mappage des tables système SQL Server 2000 avec les vues du système SQL Server 2005
Fonctions et vues de gestion dynamique
Fonctions et vues de gestion dynamique liées à l'exécution
Autres ressources
Certification Critères communs
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
12 décembre 2006 |
|