Verbindingen, sessies en aanvragen bewaken met behulp van DMV's

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

Gebruik bestaande dynamische beheerweergaven (DMV's) om de status van de verbinding, sessie en aanvraag in Microsoft Fabric te bewaken. Zie Query uitvoeren op een magazijn voor meer informatie over de hulpprogramma's en methoden voor het uitvoeren van T-SQL-query's.

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

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

Drie DMV's bieden inzichten in de levenscyclus van live SQL-query's:

  • 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.

Samen helpen deze DMV's u bij het beantwoorden van vragen zoals:

  • Wie voert een sessie uit?
  • Wanneer is de sessie gestart?
  • Wat is de id van de verbinding met het magazijn en de sessie waarop de aanvraag wordt uitgevoerd?
  • Hoeveel query's worden actief uitgevoerd?
  • Welke query’s worden langdurig uitgevoerd?

Prerequisites

  • Een werkruimte met een actieve Fabric capaciteit.
  • Een bestaand warehouse- of SQL-analyse-eindpunt.
  • Een T-SQL-queryprogramma, zoals de SQL-queryeditor of SQL Server Management Studio (SSMS).
  • Machtigingen voor het opvragen van DMV's en het beheren van sessies.

Vereiste machtigingen voor het opvragen van DMV's en het beheren van sessies

  • Een werkruimtebeheerder kan alle drie de DMV's (sys.dm_exec_connections, sys.dm_exec_sessionsen sys.dm_exec_requests) uitvoeren en sessie-, verbindings- en aanvraaggegevens bekijken voor alle gebruikers in de werkruimte.
  • Een lid van een werkruimte, Bijdrager of Lezer kan sys.dm_exec_sessions en sys.dm_exec_requests uitvoeren en alleen zijn of haar eigen sessies en aanvragen binnen het warehouse zien. Deze rollen kunnen niet worden uitgevoerd sys.dm_exec_connections.
  • Alleen een werkruimtebeheerder kan de KILL opdracht uitvoeren om een sessie te stoppen.

Magazijnverbindingen en -sessies zoeken

Voeg sys.dm_exec_connections en sys.dm_exec_sessions samen om de sessie voor elke verbinding met het datawarehouse te bekijken:

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

Gebruik de volgende stappen om een langlopende query in het magazijn te vinden, de gebruiker te identificeren die deze heeft gestart en, indien gewenst, de sessie te stoppen waarop deze wordt uitgevoerd.

  1. Vermeld actieve magazijnaanvragen, gesorteerd op hoe lang elk actief is sinds het 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;
    
  2. Zoek de gebruiker die de sessie heeft gestart die de langlopende query bevat. Vervang <session_id> door de session_id waarde uit de vorige stap:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Indien gewenst kunt u de sessie annuleren en terugdraaien door de KILL opdracht uit te voeren met het session_idvolgende:

    KILL <session_id>;
    

    Als u bijvoorbeeld de sessie 101wilt stoppen:

    KILL 101;
    

Zie Problemen met het blokkeren van query's oplossen in Fabric Data Warehouse voor een stapsgewijze handleiding voor het diagnosticeren en oplossen van queryblokkeringen.