Condividi tramite


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.

Si applica a: SQL Server 2008 R2 tramite SQL Server 2014.

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)