Überwachen von Verbindungen, Sitzungen und Anforderungen mithilfe von DMVs

Gilt für: SQL-Analyseendpunkt und Warehouse in Microsoft Fabric

Sie können vorhandene dynamische Verwaltungssichten (Dynamic Management Views, DMVs) verwenden, um den Verbindungs-, Sitzungs- und Anforderungsstatus in Microsoft Fabric zu überwachen. Weitere Informationen zu den Tools und Methoden zum Ausführen von T-SQL-Abfragen finden Sie unter Abfragen des Warehouse.

Überwachen von Verbindungen, Sitzungen und Anforderungen mithilfe von Abfragelebenszyklus-DMVs

Für die aktuelle Version stehen drei dynamische Verwaltungssichten zur Verfügung, mit denen Sie Live-Erkenntnisse zu SQL-Abfragelebenszyklen erhalten können.

  • sys.dm_exec_connections
    • Gibt Informationen zu jeder Verbindung zurück, die zwischen dem Warehouse und der Engine hergestellt wurde
  • sys.dm_exec_sessions
    • Gibt Informationen zu jeder Sitzung zurück, die zwischen dem Element und der Engine authentifiziert wurde
  • sys.dm_exec_requests
    • Gibt Informationen zu jeder aktiven Anforderung in einer Sitzung zurück

Diese drei DMVs bieten detaillierte Einblicke in die folgenden Szenarios:

  • Welcher bzw. welche Benutzer*in führt die Sitzung aus?
  • Wann wurde die Sitzung vom dem/der Benutzer*in gestartet?
  • Wie lautet die ID der Verbindung mit dem Data Warehouse und der Sitzung, in der die Anforderung ausgeführt wird?
  • Wie viele Abfragen werden aktiv ausgeführt?
  • Welche Abfragen werden lang ausgeführt?

In diesem Tutorial erfahren Sie, wie Sie Ihre ausgeführten SQL-Abfragen mithilfe dynamischer Verwaltungssichten (Dynamic Management Views, DMVs) überwachen.

DMV-Beispielabfragen

Im folgenden Beispiel wird sys.dm_exec_sessions abgefragt, um alle Sitzungen zu finden, die derzeit ausgeführt werden.

SELECT * 
FROM sys.dm_exec_sessions;

Screenshot showing the results of sys.dm_exec_sessions.

Suchen der Beziehung zwischen Verbindungen und Sitzungen

Im folgenden Beispiel werden sys.dm_exec_connections und sys.dm_exec_sessions mit der Beziehung zwischen der aktiven Sitzung in einer bestimmten Verbindung verknüpft.

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;

Identifizieren und BEENDEN einer Abfrage mit langer Ausführungsdauer

Mit der ersten Abfrage wird die Liste der Abfragen mit langer Ausführungsdauer in der Reihenfolge identifiziert, in der das Abfragen seit der Ankunft am längsten gedauert hat.

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

Diese zweite Abfrage zeigt an, welche/r Benutzer*in die Sitzung ausgeführt hat, die über die Abfrage mit langer Ausführungsdauer verfügt.

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

In dieser dritten Abfrage wird gezeigt, wie der KILL-Befehl für die session_id mit der Abfrage mit langer Ausführungsdauer verwendet wird.

KILL 'SESSION_ID WITH LONG-RUNNING QUERY'

Beispiel:

KILL '101'

Berechtigungen

  • Ein Admin verfügt über Berechtigungen zum Ausführen aller drei DMVs (sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests), um die eigenen und die Informationen anderer in einem Arbeitsbereich anzusehen.
  • Ein Mitglied, Mitwirkender und Viewer kann sys.dm_exec_sessions und sys.dm_exec_requests ausführen sowie die eigenen Ergebnisse innerhalb des Warehouses einsehen, verfügt jedoch nicht über die Berechtigung zum Ausführen von sys.dm_exec_connections.
  • Nur ein Admin verfügt über die Berechtigung zum Ausführen des Befehls KILL.