Monitorar conexões, sessões e solicitações usando DMVs
Aplica-se a:✅ ponto de extremidade de análise SQL e Warehouse no Microsoft Fabric
Você pode usar DMVs (exibições de gerenciamento dinâmico) existentes para monitorar o status da conexão, da sessão e da solicitação no Microsoft Fabric. Para obter mais informações sobre as ferramentas e métodos de execução de consultas T-SQL, consulte Consultar o depósito.
Como monitorar conexões, sessões e solicitações usando DMVs do ciclo de vida da consulta
Para a versão atual, há três exibições de gerenciamento dinâmico (DMVs) fornecidas para que você receba insights do ciclo de vida da consulta SQL em tempo real.
- sys.dm_exec_connections
- Retorna informações sobre cada conexão estabelecida entre o armazém e o mecanismo.
- sys.dm_exec_sessions
- Retorna informações sobre cada sessão autenticada entre o item e o mecanismo.
- sys.dm_exec_requests
- Retorna informações sobre cada solicitação ativa em uma sessão.
Esses três DMVs fornecem informações detalhadas sobre os seguintes cenários:
- Quem é o usuário que executa a sessão?
- Quando a sessão foi iniciada pelo usuário?
- Qual é o ID da conexão com o data warehouse e a sessão que está executando a solicitação?
- Quantas consultas estão sendo executadas ativamente?
- Quais consultas são de longa duração?
Neste tutorial, saiba como monitorar suas consultas SQL em execução usando exibições de gerenciamento dinâmico (DMVs).
Exemplo de consultas do Detran
O exemplo a seguir consulta sys.dm_exec_sessions
para localizar todas as sessões que estão em execução no momento.
SELECT *
FROM sys.dm_exec_sessions;
Encontre a relação entre conexões e sessões
O exemplo a seguir une sys.dm_exec_connections
e sys.dm_exec_sessions
à relação entre a sessão ativa em uma conexão específica.
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 MATAR uma consulta de longa execução
Esta primeira consulta identifica a lista de consultas de longa execução na ordem em que a consulta demorou mais tempo desde que chegou.
SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;
Esta segunda consulta mostra qual usuário executou a sessão que tem a consulta de longa execução.
SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';
Esta terceira consulta mostra como usar o comando KILL na session_id
consulta de longa duração.
KILL 'SESSION_ID WITH LONG-RUNNING QUERY'
Por exemplo
KILL '101'
Permissões
- Um administrador tem permissões para executar todos os três DMVs (
sys.dm_exec_connections
,sys.dm_exec_sessions
,sys.dm_exec_requests
) para ver suas próprias informações e as de outras pessoas em um espaço de trabalho. - Um Membro, Colaborador e Visualizador pode executar
sys.dm_exec_sessions
esys.dm_exec_requests
ver seus próprios resultados dentro do depósito, mas não tem permissão para executarsys.dm_exec_connections
. - Apenas um administrador tem permissão para executar o
KILL
comando.