Delen via


Verbindingen, sessies en aanvragen bewaken met DMV's

Van toepassing op: SQL Analytics-eindpunt en -magazijn in Microsoft Fabric

U kunt bestaande dynamische beheerweergaven (DMV's) gebruiken om de verbindings-, sessie- en aanvraagstatus in Microsoft Fabric te bewaken. Zie Query the Warehouse voor meer informatie over de hulpprogramma's en methoden voor het uitvoeren van T-SQL-query's.

Verbindingen, sessies en aanvragen bewaken met DMV's voor de levenscyclus van query's

Voor de huidige versie zijn er drie dynamische beheerweergaven (DMV's) beschikbaar voor het ontvangen van live SQL-querylevenscyclusinzichten.

  • sys.dm_exec_connections
    • Retourneert informatie over elke verbinding die tot stand is gebracht tussen het magazijn en de motor.
  • sys.dm_exec_sessions
    • Retourneert informatie over elke sessie die is geverifieerd tussen het item en de engine.
  • sys.dm_exec_requests
    • Retourneert informatie over elke actieve aanvraag in een sessie.

Deze drie DMV's bieden gedetailleerd inzicht in de volgende scenario's:

  • Wie is de gebruiker die de sessie uitvoert?
  • Wanneer is de sessie gestart door de gebruiker?
  • Wat is de id van de verbinding met het datawarehouse en de sessie waarop de aanvraag wordt uitgevoerd?
  • Hoeveel query's worden actief uitgevoerd?
  • Welke query's worden lang uitgevoerd?

In deze zelfstudie leert u hoe u uw actieve SQL-query's bewaakt met behulp van dynamische beheerweergaven (DMV's).

Voorbeeld van DMV-query's

In het volgende voorbeeld worden query's uitgevoerd sys.dm_exec_sessions om alle sessies te vinden die momenteel worden uitgevoerd.

SELECT * 
FROM sys.dm_exec_sessions;

Schermopname van de resultaten van sys.dm_exec_sessions.

De relatie tussen verbindingen en sessies zoeken

Het volgende voorbeeld wordt toegevoegd sys.dm_exec_connections aan en sys.dm_exec_sessions de relatie tussen de actieve sessie in een specifieke verbinding.

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;

Een langlopende query identificeren en beƫindigen

Deze eerste query identificeert de lijst met langlopende query's in de volgorde waarin de query het langst heeft geduurd sinds deze is aangekomen.

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

Deze tweede query laat zien welke gebruiker de sessie heeft uitgevoerd met de langlopende query.

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

Deze derde query laat zien hoe u de KILL-opdracht op de session_id opdracht KILL gebruikt met de langlopende query.

KILL 'SESSION_ID WITH LONG-RUNNING QUERY'

Bijvoorbeeld

KILL '101'

Machtigingen

  • Een beheerder heeft machtigingen om alle drie de DMV's (sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests) uit te voeren om hun eigen en andere gegevens in een werkruimte te bekijken.
  • Een lid, inzender en viewer kan hun eigen resultaten in het magazijn uitvoeren sys.dm_exec_sessions en sys.dm_exec_requests bekijken, maar heeft geen machtiging om uit te voeren sys.dm_exec_connections.
  • Alleen een beheerder heeft toestemming om de KILL opdracht uit te voeren.