Övervaka anslutningar, sessioner och begäranden med hjälp av DMV:er

Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric

Använd befintliga dynamiska hanteringsvyer (DMV:er) för att övervaka anslutnings-, sessions- och begärandestatus i Microsoft Fabric. Mer information om verktyg och metoder för att köra T-SQL-frågor finns i Fråga ett lager.

I den här självstudien får du lära dig hur du övervakar dina SQL-frågor som körs med hjälp av dynamiska hanteringsvyer (DMV:er).

Så övervakar du anslutningar, sessioner och begäranden med hjälp av DMV:er för frågans livscykel

Tre DMV:er ger insikter om sql-frågelivscykeln live:

Tillsammans hjälper dessa DMV:er dig att besvara frågor som:

  • Vem har startat en session?
  • När startade sessionen?
  • Vad är anslutningens ID till Warehouse och ID:t för den session som kör förfrågan?
  • Hur många frågor körs aktivt?
  • Vilka frågor är tidskrävande?

Förutsättningar

  • En arbetsyta med en aktiv Fabric-kapacitet.
  • En befintlig slutpunkt för lager- eller SQL-analys.
  • Ett T-SQL-frågeverktyg, till exempel SQL-frågeredigeraren eller SQL Server Management Studio (SSMS).
  • Behörigheter för att fråga DMV:er och hantera sessioner.

Behörigheter som krävs för att köra frågor mot DMV:er och hantera sessioner

  • En arbetsyteadministratör kan köra alla tre DMV:er (sys.dm_exec_connections, sys.dm_exec_sessionsoch ) och sys.dm_exec_requestsse information om session, anslutning och begäran för alla användare på arbetsytan.
  • En medlem i arbetsytan, bidragsgivare eller visare kan köra sys.dm_exec_sessions och sys.dm_exec_requests samt endast se sina egna sessioner och förfrågningar i datalagret. Dessa roller kan inte köra sys.dm_exec_connections.
  • Endast en arbetsyteadministratör kan köra KILL kommandot för att stoppa en session.

Hitta datalageranslutningar och sessioner

Sammanfoga sys.dm_exec_connections och sys.dm_exec_sessions för att visa sessionen för varje anslutning till datalagret:

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;

Identifiera och avsluta en långkörande fråga

Använd följande steg för att hitta en tidskrävande fråga i informationslagret, identifiera den användare som startade den och stoppa om så önskas den session som kör den.

  1. Visa en lista över aktiva lagerbegäranden, ordnade efter hur länge var och en har körts sedan den kom:

    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. Leta reda på den användare som startade sessionen som innehåller den långvariga frågan. Ersätt <session_id> med session_id värdet från föregående steg:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Om du vill kan du avbryta och återställa sessionen genom att KILL köra kommandot med session_id:

    KILL <session_id>;
    

    Om du till exempel vill stoppa sessionen 101:

    KILL 101;
    

En stegvis guide för att diagnostisera och lösa frågeblockering finns i Felsöka frågeblockering i Fabric Data Warehouse.