Monitorize ligações, sessões e pedidos usando os DMVs

Aplica-se a:✅ ponto final de analíticos SQL e Warehouse no Microsoft Fabric

Use as vistas de gestão dinâmica (DMVs) existentes para monitorizar o estado da ligação, sessão e pedido no Microsoft Fabric. Para mais informações sobre as ferramentas e métodos de execução de consultas T-SQL, consulte Consultar um armazém.

Neste tutorial, aprende a monitorizar as suas consultas SQL em execução usando vistas de gestão dinâmica (DMVs).

Como monitorizar conexões, sessões e solicitações com DMVs do ciclo de vida da consulta

Três DMVs fornecem insights reais sobre o ciclo de vida das consultas SQL:

Juntos, estes DMVs ajudam-no a responder a perguntas como:

  • Quem está a conduzir uma sessão?
  • Quando começou a sessão?
  • Qual é o ID da ligação ao Warehouse e da sessão que está a executar o pedido?
  • Quantas consultas estão atualmente em execução?
  • Quais as consultas que são de longa duração?

Pré-requisitos

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

Permissões necessárias para consultar os DMVs e gerir sessões

  • Um Administrador de espaço de trabalho pode executar os três DMVs (sys.dm_exec_connections, sys.dm_exec_sessions, e sys.dm_exec_requests) e ver informações de sessão, ligação e pedidos para todos os utilizadores dentro do espaço de trabalho.
  • Um Membro, Colaborador ou Visualizador do espaço de trabalho pode executar sys.dm_exec_sessions e sys.dm_exec_requests e ver apenas as suas próprias sessões e solicitações no armazém. Estas funções não podem executar sys.dm_exec_connections.
  • Só um Administrador do espaço de trabalho pode executar o KILL comando para parar uma sessão.

Encontre conexões e sessões do armazém

Associe sys.dm_exec_connections e sys.dm_exec_sessions para ver as sessões de cada ligação ao armazém:

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 terminar uma consulta de execução prolongada

Use os passos seguintes para encontrar uma consulta de longa duração no armazém, identificar o utilizador que a iniciou e, se desejar, parar a sessão que a está a executar.

  1. Liste os pedidos de armazém ativos, ordenados pelo tempo que cada um está a funcionar desde a sua 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 utilizador que iniciou a sessão que contém a consulta de longa duração. Substitua <session_id> pelo session_id valor do passo anterior:

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

    KILL <session_id>;
    

    Por exemplo, para parar a sessão 101:

    KILL 101;
    

Para um guia passo a passo para diagnosticar e resolver o bloqueio de consultas, veja Resolução de problemas do bloqueio de consultas em Fabric Data Warehouse.