sys.dm_os_tasks (Transact-SQL)
Si applica a:SQL Server
Database SQL di
Azure Istanza
gestita di SQL di Azure Azure Synapse Analytics Platform
System (PDW)
Restituisce una riga per ogni attività attiva nell'istanza di SQL Server. Un'attività è l'unità di base dell'esecuzione in SQL Server. Esempi di attività includono una query, un account di accesso, una disconnessione e attività di sistema come attività di pulizia fantasma, attività di checkpoint, writer di log, attività di rollforward parallele. Per altre informazioni sulle attività, vedere guida all'architettura di thread e attività.
Nota
Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_os_tasks. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
task_address | varbinary(8) | Indirizzo di memoria dell'oggetto. |
task_state | nvarchar(60) | Stato dell'attività. Le opzioni a disposizione sono: PENDING: in attesa di un thread di lavoro. RUNNABLE: eseguibile, ma in attesa di ricevere un quantum. RUNNING: esecuzione in corso nell'utilità di pianificazione. SUSPENDED: è disponibile un thread di lavoro, ma è in attesa di un evento. DONE: completato. SPINLOOP: bloccato in uno spinlock. |
context_switches_count | int | Numero di cambi di contesto dell'utilità di pianificazione completati dall'attività. |
pending_io_count | int | Numero di I/O fisici eseguiti dall'attività. |
pending_io_byte_count | bigint | Numero totale di byte degli I/O eseguiti dall'attività. |
pending_io_byte_average | int | Numero medio di byte degli I/O eseguiti dall'attività. |
scheduler_id | int | ID dell'utilità di pianificazione padre. Si tratta di un handle per le informazioni dell'utilità di pianificazione per l'attività. Per altre informazioni, vedere sys.dm_os_schedulers (Transact-SQL). |
session_id | smallint | ID della sessione associata all'attività. |
exec_context_id | int | ID del contesto di esecuzione associato all'attività. |
request_id | int | ID della richiesta dell'attività. Per altre informazioni, vedere sys.dm_exec_requests (Transact-SQL). |
worker_address | varbinary(8) | Indirizzo di memoria del thread di lavoro che sta eseguendo l'attività. NULL = Per poter essere eseguita, l'attività è in attesa di un thread di lavoro oppure l'esecuzione dell'attività è stata completata. Per altre informazioni, vedere sys.dm_os_workers (Transact-SQL). |
host_address | varbinary(8) | Indirizzo di memoria dell'host. 0 = Per creare l'attività non è stato utilizzato alcun host. Ciò semplifica l'identificazione dell'host utilizzato per creare l'attività. Per altre informazioni, vedere sys.dm_os_hosts (Transact-SQL). |
parent_task_address | varbinary(8) | Indirizzo di memoria dell'attività padre dell'oggetto. |
pdw_node_id | int | Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
Autorizzazioni
Per SQL Server e Istanza gestita di SQL è necessaria VIEW SERVER STATE
l'autorizzazione.
Per gli obiettivi di servizio di base, S0 e S1 del database SQL e per i database nei pool elastici, l'account amministratore del server, l'account amministratore di Azure Active Directory o l'appartenenza al ruolo del##MS_ServerStateReader##
server è necessaria. Per tutti gli altri obiettivi del servizio di database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE
per il database o l'appartenenza al ruolo del ##MS_ServerStateReader##
server.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE nel server.
Esempi
R. Monitoraggio di richieste in parallelo
Per le richieste eseguite in parallelo, verranno visualizzate più righe per la stessa combinazione di (<session_id>,< request_id).> Usare la query seguente per trovare l'opzione Di configurazione del server max degree of parallelism per tutte le richieste attive.
Nota
Un request_id è univoco all'interno di una sessione.
SELECT
task_address,
task_state,
context_switches_count,
pending_io_count,
pending_io_byte_count,
pending_io_byte_average,
scheduler_id,
session_id,
exec_context_id,
request_id,
worker_address,
host_address
FROM sys.dm_os_tasks
ORDER BY session_id, request_id;
B. Associazione di ID di sessione con thread di Windows
È possibile utilizzare la query seguente per associare un valore di ID di sessione a un ID di thread di Windows. È possibile monitorare le prestazioni del thread utilizzando Performance Monitor di Windows. La query seguente non restituisce informazioni per le sessioni sospese.
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO
Vedi anche
Viste a gestione dinamica correlate al sistema operativo SQL Server (Transact-SQL)
Guida sull'architettura dei thread e delle attività
Commenti e suggerimenti
Invia e visualizza il feedback per