Monitorar conexões, sessões e solicitações usando DMVs

Aplica-se a:✅ endpoint de análises SQL e Warehouse no Microsoft Fabric

Use as DMVs (exibições de gerenciamento dinâmico) existentes para monitorar o status de conexão, sessão e solicitação em Microsoft Fabric. Para obter mais informações sobre as ferramentas e os métodos de execução de consultas T-SQL, consulte Consultar um warehouse.

Neste tutorial, você aprenderá a monitorar suas consultas SQL em execução usando DMVs (exibições de gerenciamento dinâmico).

Como monitorar conexões, sessões e solicitações por meio de DMVs do ciclo de vida da consulta

Três DMVs fornecem insights dinâmicos do ciclo de vida da consulta SQL:

Juntos, esses DMVs ajudam você a responder perguntas como:

  • Quem está conduzindo uma sessão?
  • Quando a sessão começou?
  • Qual é a ID da conexão com o Warehouse e a sessão que está executando a solicitação?
  • Quantas consultas estão ativamente em execução?
  • Quais consultas são de longa execução?

Pré-requisitos

  • Um espaço de trabalho com uma capacidade ativa do Fabric.
  • Um Warehouse ou ponto de extremidade de análise SQL existente.
  • Uma ferramenta de consulta T-SQL, como o editor de consultas SQL ou o SSMS (SQL Server Management Studio).
  • Permissões para consultar DMVs e gerenciar sessões.

Permissões necessárias para consultar DMVs e gerenciar sessões

  • Um administrador de workspace pode executar todos os três DMVs (sys.dm_exec_connectionse sys.dm_exec_sessionssys.dm_exec_requests) e ver informações de sessão, conexão e solicitação para todos os usuários dentro do workspace.
  • Um Membro, Colaborador ou Visualizador do espaço de trabalho pode executar sys.dm_exec_sessions e sys.dm_exec_requests e ver somente suas próprias sessões e solicitações dentro do armazém. Essas funções não podem executar sys.dm_exec_connections.
  • Somente um administrador do workspace pode executar o KILL comando para interromper uma sessão.

Localizar conexões e sessões do armazém de dados

Use sys.dm_exec_connections e sys.dm_exec_sessions para ver a sessão de cada conexão com o data warehouse:

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;

Identificar e ENCERRAR uma consulta de longa duração

Use as etapas a seguir para encontrar uma consulta de execução prolongada no warehouse, identificar o usuário que a iniciou e, se desejar, interromper a sessão que a está executando.

  1. Liste as solicitações de warehouse ativas, ordenadas por há quanto tempo cada uma está em execução desde a chegada:

    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. Encontre o usuário que iniciou a sessão que contém a consulta de longa duração. Substitua <session_id> pelo session_id valor da etapa anterior:

    SELECT login_name
    FROM sys.dm_exec_sessions
    WHERE session_id = <session_id>;
    
  3. Se desejar, cancele e reverta a sessão executando o comando KILL com o session_id:

    KILL <session_id>;
    

    Por exemplo, para interromper a sessão 101:

    KILL 101;
    

Para obter um guia passo a passo para diagnosticar e resolver o bloqueio de consulta, consulte Solucionar problemas de bloqueio de consulta em Fabric Data Warehouse.