Overvåk tilkoblinger, økter og forespørsler ved å bruke DMV-er

Gjelder for:✅ SQL Analytics-endepunkt og Warehouse i Microsoft Fabric

Bruk eksisterende dynamiske administrasjonsvisninger (DMV-er) for å overvåke tilkobling, økt og forespørselsstatus i Microsoft Fabric. For mer informasjon om verktøyene og metodene for å utføre T-SQL-spørringer, se Query a warehouse.

I denne veiledningen lærer du hvordan du overvåker kjørende SQL-spørringer ved å bruke dynamiske administrasjonsvisninger (DMV-er).

Hvordan overvåke tilkoblinger, økter og forespørsler ved å bruke DMV-er for spørringslivssyklusen

Tre DMV-er gir live innsikt i livssyklusen for SQL-spørringer:

Sammen hjelper disse DMV-ene deg med å svare på spørsmål som:

  • Hvem holder en økt?
  • Når startet økten?
  • Hva er ID-en til tilkoblingen til Warehouse og sesjonen som kjører forespørselen?
  • Hvor mange spørringer kjører aktivt?
  • Hvilke forespørsler er langvarige?

Forutsetninger

  • Et arbeidsområde med aktiv Fabric-kapasitet.
  • Et eksisterende lager- eller SQL-analyseendepunkt.
  • Et T-SQL-spørringsverktøy, som SQL-spørringseditoren eller SQL Server Management Studio (SSMS).
  • Tillatelser til å spørre DMV-er og administrere økter.

Påkrevde tillatelser for å spørre DMV-er og administrere økter

  • En arbeidsområdeadministrator kan utføre alle tre DMV-ene (sys.dm_exec_connections, sys.dm_exec_sessions, og sys.dm_exec_requests) og se sesjon, tilkobling og forespørselsinformasjon for alle brukere i arbeidsområdet.
  • Et arbeidsområdemedlem, bidragsyter eller seer kan utføre sys.dm_exec_sessions og sys.dm_exec_requests se kun sine egne økter og forespørsler i lageret. Disse rollene kan ikke gjennomføres sys.dm_exec_connections.
  • Kun en arbeidsområdeadministrator kan kjøre kommandoen KILL for å stoppe en økt.

Finn lagerforbindelser og økter

Bli med sys.dm_exec_connections og sys.dm_exec_sessions se sesjonen for hver tilkobling 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;

Identifisere og DREPE en langvarig spørring

Bruk følgende steg for å finne en langvarig spørring i lageret, identifiser brukeren som startet den, og om ønskelig, stopp økten som kjører den.

  1. List aktive lagerforespørsler, ordnet etter hvor lenge hver har vært i drift siden 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. Finn brukeren som startet økten som inneholder den langvarige spørringen. Erstatt <session_id> med session_id verdien fra forrige steg:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Om ønskelig, avbryt og rull tilbake økten ved å kjøre kommandoen KILL med session_id:

    KILL <session_id>;
    

    For eksempel, for å stoppe økten 101:

    KILL 101;
    

For en steg-for-steg-guide til å diagnostisere og løse spørringsblokkering, se Feilsøking av spørringsblokkering i Fabric datalager.