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.
- sys.dm_exec_connections
- Renvoie des informations sur chaque connexion établie entre l'entrepôt et le moteur.
- sys.dm_exec_sessions
- Renvoie des informations sur chaque session authentifiée entre l'élément et le moteur.
- sys.dm_exec_requests
- Renvoie des informations sur chaque requête active dans une session.
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;
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
etsys.dm_exec_requests
voir leurs propres résultats dans l'entrepôt, mais n'ont pas l'autorisation d'exécutersys.dm_exec_connections
. - Seul un administrateur est autorisé à exécuter la commande
KILL
.