Monitorujte připojení, relace a požadavky pomocí DMV

Platí pro:✅ Koncový bod SQL analytics a datový sklad v Microsoft Fabric

Pomocí existujících zobrazení dynamické správy můžete monitorovat stav připojení, relace a žádosti v Microsoft Fabric. Další informace o nástrojích a metodách spouštění dotazů T-SQL najdete v tématu Dotazování skladu.

V tomto kurzu se dozvíte, jak monitorovat spuštěné dotazy SQL pomocí zobrazení dynamické správy (DMV).

Monitorování připojení, relací a požadavků pomocí zobrazení dynamické správy životního cyklu dotazů

Tři zobrazení DMV poskytují přehled o životním cyklu spuštěného dotazu SQL:

Tato zobrazení dynamické správy (DMV) vám společně pomohou odpovědět na otázky, jako například:

  • Kdo vede relaci?
  • Kdy relace začala?
  • Jaké je ID připojení k datovému skladu a ID relace, ve které požadavek běží?
  • Kolik dotazů aktivně běží?
  • Které dotazy jsou dlouhotrvající?

Předpoklady

  • Pracovní prostor s aktivní kapacitou služby Fabric
  • Existující koncový bod služby Warehouse nebo SQL Analytics.
  • Dotazovací nástroj T-SQL, například editor dotazů SQL nebo SQL Server Management Studio (SSMS).
  • Oprávnění k dotazování na DMVs (zobrazení dynamické správy) a ke správě relací

Oprávnění vyžadovaná pro dotazování na zobrazení dynamické správy a správu relací

  • Správce pracovního prostoru může spustit všechny tři zobrazení dynamické správy (sys.dm_exec_connections, sys.dm_exec_sessionsasys.dm_exec_requests) a zobrazit relaci, připojení a požádat o informace pro všechny uživatele v rámci pracovního prostoru.
  • Člen pracovního prostoru, přispěvatel nebo prohlížeč může spouštět sys.dm_exec_sessions a sys.dm_exec_requests zobrazovat pouze své vlastní relace a požadavky v rámci skladu. Tyto role nelze spustit sys.dm_exec_connections.
  • Příkaz KILL k zastavení relace může spustit pouze správce pracovního prostoru.

Vyhledání připojení a relací skladu

Sloučením sys.dm_exec_connections a sys.dm_exec_sessions zobrazíte relaci pro každé připojení k datovému skladu:

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;

Identifikace a ukončení dlouhotrvajícího dotazu

Pomocí následujících kroků vyhledejte v skladu dlouhotrvající dotaz, identifikujte uživatele, který ho spustil, a v případě potřeby zastavte relaci, která ji spouští.

  1. Uveďte seznam aktivních žádostí o sklad seřazený podle doby, po kterou každá z nich byla spuštěna od doby, kdy přišla:

    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. Vyhledejte uživatele, který spustil relaci, která obsahuje dlouhotrvající dotaz. <session_id> Nahraďte session_id hodnotou z předchozího kroku:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Pokud chcete, zrušte relaci a obnovte její předchozí stav spuštěním příkazu KILL s parametrem session_id:

    KILL <session_id>;
    

    Pokud chcete například zastavit relaci 101:

    KILL 101;
    

Podrobný průvodce diagnostikou a řešením blokování dotazů najdete v tématu Řešení potíží s blokováním dotazů v Fabric Data Warehouse.