Surveiller les connexions, les sessions et les requêtes à l’aide de DMV

S’applique à :✅ point de terminaison analytique SQL et entrepôt dans Microsoft Fabric

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

Dans ce tutoriel, vous allez apprendre à surveiller vos requêtes SQL en cours d’exécution à l’aide de vues de gestion dynamique (DMV).

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

Trois DMV fournissent des informations en temps réel sur le cycle de vie des requêtes SQL :

  • sys.dm_exec_connections retourne des informations sur chaque connexion établie entre l’entrepôt et le moteur.
  • sys.dm_exec_sessions retourne des informations sur chaque session authentifiée entre l’élément et le moteur.
  • sys.dm_exec_requests retourne des informations sur chaque requête active dans une session.

Ensemble, ces DMV vous aident à répondre à des questions telles que :

  • Qui anime une session ?
  • Quand la session a-t-elle commencé ?
  • Quel est l’ID de la connexion à l’entrepôt et à la session qui exécute la requête ?
  • Combien de requêtes sont en cours d'exécution ?
  • Quelles requêtes ont un temps d’exécution long ?

Prerequisites

  • Espace de travail avec une capacité Fabric active.
  • Un Warehouse existant ou un point de terminaison analytique SQL existant.
  • Outil de requête T-SQL, tel que l’éditeur de requête SQL ou SQL Server Management Studio (SSMS).
  • Autorisations permettant d’interroger les DMV et de gérer les sessions.

Autorisations requises pour interroger les DMV et gérer des sessions

  • Un administrateur d’espace de travail peut exécuter les trois DMV (sys.dm_exec_connectionset sys.dm_exec_sessionssys.dm_exec_requests) et afficher les informations de session, de connexion et de demande pour tous les utilisateurs de l’espace de travail.
  • Un membre, contributeur ou observateur de l’espace de travail peut exécuter sys.dm_exec_sessions et sys.dm_exec_requests, et voir uniquement ses propres sessions et demandes dans l’entrepôt. Ces rôles ne peuvent pas s’exécuter sys.dm_exec_connections.
  • Seul un administrateur d’espace de travail peut exécuter la KILL commande pour arrêter une session.

Rechercher des connexions et des sessions d’entrepôts de données

Joignez sys.dm_exec_connections et sys.dm_exec_sessions pour afficher les sessions de chaque connexion à l’entrepôt :

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

Suivez les étapes suivantes pour rechercher une requête longue dans l’entrepôt, identifier l’utilisateur qui l’a démarré et, si vous le souhaitez, arrêter la session qui l’exécute.

  1. Répertoriez les demandes d’entrepôt actif, classées selon la durée d’exécution de chacun 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;
    
  2. Recherchez l’utilisateur qui a démarré la session qui contient la requête longue. Remplacez <session_id> par la session_id valeur de l’étape précédente :

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Si vous le souhaitez, annulez et restaurez la session en exécutant la KILL commande avec :session_id

    KILL <session_id>;
    

    Par exemple, pour arrêter la session 101:

    KILL 101;
    

Pour obtenir un guide pas à pas pour diagnostiquer et résoudre le blocage des requêtes, consultez Résoudre les problèmes de blocage des requêtes dans Fabric Data Warehouse.