Overvåg forbindelser, sessioner og anmodninger ved at bruge DMV'er

Gælder for:✅ SQL Analytics-slutpunkt og warehouse i Microsoft Fabric

Brug eksisterende dynamiske administrationsvisninger (DMV'er) til at overvåge forbindelse, sessioner og anmodningsstatus i Microsoft Fabric. For mere information om værktøjerne og metoderne til at udføre T-SQL-forespørgsler, se Forespørgsel i et lager.

I denne vejledning lærer du, hvordan du overvåger dine kørende SQL-forespørgsler ved at bruge dynamiske styringsvisninger (DMV'er).

Sådan overvåger du forbindelser, sessioner og forespørgsler ved at bruge forespørgselslivscyklus-DMV'er

Tre DMV'er leverer live indsigter i SQL-forespørgselslivscyklussen:

  • sys.dm_exec_connections returnerer information om hver forbindelse, der er etableret mellem lageret og motoren.
  • sys.dm_exec_sessions returnerer information om hver session, der er autentificeret mellem genstanden og motoren.
  • sys.dm_exec_requests returnerer information om hver aktiv anmodning i en session.

Sammen hjælper disse DMV'er dig med at besvare spørgsmål som:

  • Hvem leder en session?
  • Hvornår startede sessionen?
  • Hvad er ID'et på forbindelsen til Warehouse og den session, der kører forespørgslen?
  • Hvor mange forespørgsler kører aktivt?
  • Hvilke forespørgsler er langvarige?

Forudsætninger

  • Et arbejdsområde med aktiv Fabric-kapacitet.
  • Et eksisterende lager- eller SQL-analyse-endpoint.
  • Et T-SQL-forespørgselsværktøj, såsom SQL-forespørgselseditoren eller SQL Server Management Studio (SSMS).
  • Tilladelser til at forespørge DMV'er og administrere sessioner.

Nødvendige tilladelser til at forespørge DMV'er og administrere sessioner

  • En workspace-administrator kan udføre alle tre DMV'er (sys.dm_exec_connections, sys.dm_exec_sessions, og sys.dm_exec_requests) og se session, forbindelse og anmodningsinformation for alle brugere i arbejdsområdet.
  • Et workspace-medlem, bidragyder eller viser kan kun udføre sys.dm_exec_sessions og sys.dm_exec_requests se sine egne sessioner og anmodninger inden for lageret. Disse roller kan ikke udføres sys.dm_exec_connections.
  • Kun en workspace-administrator kan køre kommandoen KILL for at stoppe en session.

Find lagerforbindelser og sessioner

Tilmeld sys.dm_exec_connections dig og sys.dm_exec_sessions se sessionen for hver forbindelse til lageret:

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;

Identificer og KILL for en forespørgsel, der har kørt i lang tid

Brug følgende trin til at finde en langvarig forespørgsel i lageret, identificer brugeren, der startede den, og hvis ønsket, stop sessionen, der kører den.

  1. List aktive lageranmodninger, sorteret efter hvor længe hver har kørt siden den ankom:

    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. Find brugeren, der startede sessionen, som indeholder den langvarige forespørgsel. Erstat <session_id> med værdien session_id fra det forrige trin:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Hvis ønskeligt, annuller og rull sessionen tilbage ved at køre kommandoen KILL med session_id:

    KILL <session_id>;
    

    For eksempel, for at stoppe sessionen 101:

    KILL 101;
    

For en trin-for-trin guide til diagnosticering og løsning af forespørgselsblokering, se Fejlfinding af forespørgselsblokering i Fabric data warehouse.