sys.dm_os_threads (Transact-SQL)
Restituisce un elenco di tutti i thread del sistema operativo di SQL Server in esecuzione nel processo di SQL Server.
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
Nome colonna |
Tipo di dati |
Descrizione |
|
---|---|---|---|
thread_address |
varbinary(8) |
Indirizzo di memoria (chiave primaria) del thread. |
|
started_by_sqlservr |
bit |
Indica l'initiator del thread. 1 = Il thread è stato avviato da SQL Server. 0 = Il thread è stato avviato da un altro componente, ad esempio una stored procedure estesa in SQL Server. |
|
os_thread_id |
int |
ID del thread assegnato dal sistema operativo. |
|
status |
int |
Flag di stato interno. |
|
instruction_address |
varbinary(8) |
Indirizzo dell'istruzione attualmente in esecuzione. |
|
creation_time |
datetime |
Ora di creazione del thread. |
|
kernel_time |
bigint |
Quantità di tempo del kernel utilizzato dal thread. |
|
usermode_time |
bigint |
Quantità di tempo utente utilizzato dal thread. |
|
stack_base_address |
varbinary(8) |
Indirizzo di memoria dell'indirizzo dello stack più alto per il thread. |
|
stack_end_address |
varbinary(8) |
Indirizzo di memoria dell'indirizzo dello stack più basso per il thread. |
|
stack_bytes_committed |
int |
Numero di byte di cui è stato eseguito il commit nello stack. |
|
stack_bytes_used |
int |
Numero di byte attivamente utilizzati nel thread. |
|
affinity |
bigint |
Maschera della CPU nella quale il thread è in esecuzione. Dipende dal valore configurato dall'istruzione ALTER SERVER CONFIGURATION SET PROCESS AFFINITY. Potrebbe essere diverso dall'utilità di pianificazione in caso di affinità soft. |
|
Priority |
int |
Valore di priorità del thread. |
|
Locale |
int |
Identificatore delle impostazioni locali (LCID) nella cache per il thread. |
|
Token |
varbinary(8) |
Handle del token di rappresentazione nella cache per il thread. |
|
is_impersonating |
int |
Indica se il thread utilizza la rappresentazione Win32. 1 = Il thread utilizza credenziali di sicurezza diverse da quelle predefinite del processo. Ciò indica che il thread rappresenta un'entità diversa da quella che ha creato il processo. |
|
is_waiting_on_loader_lock |
int |
Stato del sistema operativo indicante se il thread è in attesa di un blocco del caricatore. |
|
fiber_data |
varbinary(8) |
Fiber Win32 corrente in esecuzione nel thread. È applicabile solo in caso di configurazione di SQL Server per il lightweight pooling. |
|
thread_handle |
varbinary(8) |
Solo per uso interno. |
|
event_handle |
varbinary(8) |
Solo per uso interno. |
|
scheduler_address |
varbinary(8) |
Indirizzo di memoria dell'utilità di pianificazione associata al thread. Per ulteriori informazioni, vedere sys.dm_os_schedulers (Transact-SQL). |
|
worker_address |
varbinary(8) |
Indirizzo di memoria del thread di lavoro associato al thread. Per ulteriori informazioni, vedere sys.dm_os_workers (Transact-SQL). |
|
fiber_context_address |
varbinary(8) |
Indirizzo del contesto interno del fiber. È applicabile solo in caso di configurazione di SQL Server per il lightweight pooling. |
|
self_address |
varbinary(8) |
Puntatore di consistenza interno. |
|
processor_group |
smallint |
ID del gruppo di processori.
|
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Esempi
All'avvio di SQL Server, vengono avviati dei thread a cui vengono associati thread di lavoro. Componenti esterni, ad esempio una stored procedure estesa, possono tuttavia avviare thread nel processo di SQL Server. SQL Server non dispone di controllo su questi thread. sys.dm_os_threads c può offrire informazioni sui thread non autorizzati che utilizzano risorse nel processo di SQL Server.
La query seguente consente di individuare i thread di lavoro che eseguono thread non avviati da SQL Server, con il tempo utilizzato per l'esecuzione.
Nota
A scopo di brevità, nell'istruzione SELECT della query seguente viene utilizzato un asterisco (*).È consigliabile evitare di utilizzare l'asterisco (*), in particolare per viste del catalogo, viste a gestione dinamica e funzioni di sistema con valori di tabella.Negli aggiornamenti e nelle versioni future di Microsoft SQL Server è possibile che vengano aggiunte colonne e modificato l'ordine delle colonne in queste viste e funzioni.Queste modifiche potrebbero causare malfunzionamenti nelle applicazioni che prevedono un ordine e un numero di colonne specifici.
SELECT *
FROM sys.dm_os_threads
WHERE started_by_sqlservr = 0;
Vedere anche
Riferimento
Funzioni e viste a gestione dinamica (Transact-SQL)
sys.dm_os_workers (Transact-SQL)
Viste a gestione dinamica relative al sistema operativo di SQL Server (Transact-SQL)