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.

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 dell'opzione di configurazione affinity mask di sp_configure.

locale

int

Identificatore delle impostazioni locali (LCID) nella cache per il thread.

priority

int

Valore di priorità del 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 protezione 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.

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 nel processo di SQL Server dei thread su cui SQL Server non dispone di alcun controllo. sys.dm_os_threads 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 MicrosoftSQL 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;