Surveiller les connexions, les sessions et les demandes à l'aide de DMV

S’applique à : point de terminaison d’analytique SQL et Warehouse dans Microsoft Fabric

Vous pouvez utiliser les vues de gestion dynamique (DMV) existantes pour surveiller l'état de la connexion, de la session et de la requête dans Microsoft Fabric. Pour plus d'informations sur les outils et les méthodes d'exécution des requêtes T-SQL, consultez Interroger l'entrepôt.

Comment surveiller les connexions, les sessions et les demandes à l'aide des DMV du cycle de vie des requêtes

Pour la version actuelle, trois vues de gestion dynamique (DMV) vous permettent de recevoir des informations sur le cycle de vie des requêtes SQL en direct.

Ces trois DMV fournissent des informations détaillées sur les scénarios suivants :

  • Qui est l'utilisateur qui exécute la session ?
  • Quand la session a-t-elle été démarrée par l'utilisateur ?
  • Quel est l'ID de la connexion à l'entrepôt de données et à la session qui exécute la requête ?
  • Combien de requêtes sont en cours d'exécution ?
  • Quelles requêtes sont durable ?

Dans ce didacticiel, découvrez comment surveiller vos requêtes SQL en cours d'exécution à l'aide de vues de gestion dynamiques (DMV).

Exemples de requêtes DMV

L'exemple suivant interroge sys.dm_exec_sessions pour rechercher toutes les sessions en cours d'exécution.

SELECT * 
FROM sys.dm_exec_sessions;

Screenshot showing the results of sys.dm_exec_sessions.

Trouver la relation entre les connexions et les sessions

L'exemple suivant joint sys.dm_exec_connections et sys.dm_exec_sessions à la relation entre la session active dans une connexion spécifique.

SELECT connections.connection_id,
 connections.connect_time,
 sessions.session_id, sessions.login_name, sessions.login_time, sessions.status
FROM sys.dm_exec_connections AS connections
INNER JOIN sys.dm_exec_sessions AS sessions
ON connections.session_id=sessions.session_id;

Identifier et tuer une requête de longue durée

Cette première requête identifie la liste des requêtes de longue durée dans l'ordre de laquelle la requête a pris le plus de temps depuis son arrivée.

SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;

Cette deuxième requête montre quel utilisateur a exécuté la session qui a la requête de longue durée.

SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';

Cette troisième requête montre comment utiliser la commande KILL sur le session_id avec la requête de longue durée.

KILL 'SESSION_ID WITH LONG-RUNNING QUERY'

Par exemple

KILL '101'

Autorisations

  • Un administrateur est autorisé à exécuter les trois DMV (sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests) pour voir ses propres informations et celles des autres dans un espace de travail.
  • Un membre, un contributeur et un visualiseur peuvent exécuter sys.dm_exec_sessions et sys.dm_exec_requests voir leurs propres résultats dans l'entrepôt, mais n'ont pas l'autorisation d'exécuter sys.dm_exec_connections.
  • Seul un administrateur est autorisé à exécuter la commande KILL.