Monitorare connessioni, sessioni e richieste usando DMV

Si applica a:✅ endpoint di Analisi SQL e Warehouse in Microsoft Fabric

È possibile usare viste a gestione dinamica esistenti (DMV) per monitorare lo stato di connessione, sessione e richiesta in Microsoft Fabric. Per altre informazioni sugli strumenti e sui metodi di esecuzione di query T-SQL, vedere Eseguire query sul warehouse.

Come monitorare connessioni, sessioni e richieste usando DMV del ciclo di vita delle query

Per la versione corrente sono disponibili tre viste a gestione dinamica (DMV) per ricevere informazioni dettagliate sul ciclo di vita delle query SQL in tempo reale.

Queste tre DMV forniscono informazioni dettagliate sugli scenari seguenti:

  • Chi è l’utente che esegue la sessione?
  • Quando è stata avviata la sessione dall'utente?
  • Qual è l'ID della connessione al data warehouse e alla sessione che esegue la richiesta?
  • Quante query vengono eseguite attivamente?
  • Quali query sono a esecuzione prolungata?

Questa esercitazione illustra come monitorare le query SQL in esecuzione usando viste a gestione dinamica (DMV).

Query DMV di esempio

Nell'esempio seguente viene eseguita una query sys.dm_exec_sessions per trovare tutte le sessioni attualmente in esecuzione.

SELECT * 
FROM sys.dm_exec_sessions;

Trovare la relazione tra connessioni e sessioni

Nell'esempio seguente vengono aggiunti sys.dm_exec_connections e sys.dm_exec_sessions alla relazione tra la sessione attiva in una connessione specifica.

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;

Identificare e TERMINARE una query a esecuzione prolungata

Questa prima query identifica l'elenco di query con esecuzione prolungata nell'ordine in cui la query ha richiesto il tempo più lungo dall'arrivo.

SELECT request_id, session_id, start_time, total_elapsed_time
FROM sys.dm_exec_requests
WHERE status = 'running'
ORDER BY total_elapsed_time DESC;

Questa seconda query mostra l'utente che ha eseguito la sessione con la query a esecuzione prolungata.

SELECT login_name
FROM sys.dm_exec_sessions
WHERE 'session_id' = 'SESSION_ID WITH LONG-RUNNING QUERY';

Questa terza query illustra come usare il comando TERMINARE in session_id con la query a esecuzione prolungata.

KILL 'SESSION_ID WITH LONG-RUNNING QUERY'

Ad esempio:

KILL '101'

Autorizzazioni

  • Un amministratore ha le autorizzazioni per eseguire tutte e tre le DMV (sys.dm_exec_connections, sys.dm_exec_sessions, sys.dm_exec_requests) per visualizzare le informazioni personali e altrui all'interno di un'area di lavoro.
  • Un membro, un collaboratore e un visualizzatore possono eseguire sys.dm_exec_sessions e sys.dm_exec_requests visualizzare i propri risultati all'interno del warehouse, ma non dispone dell'autorizzazione per eseguire sys.dm_exec_connections.
  • Solo un amministratore dispone dell'autorizzazione per eseguire il comando KILL.