Partager via


sys.dm_os_threads (Transact-SQL)

Retourne la liste de tous les threads du système d'exploitation SQL Server qui s'exécutent sous le processus SQL Server.

Nom de colonne

Type de données

Description

thread_address

varbinary(8)

Adresse mémoire (clé primaire) du thread.

started_by_sqlservr

bit

Indique l'initiateur du thread.

1 = SQL Server a démarré le thread.

0 = un autre composant a démarré le thread, par exemple une procédure stockée étendue dans SQL Server.

os_thread_id

int

ID du thread qui est attribué par le système d'exploitation.

status

int

Indicateur d'état interne.

instruction_address

varbinary(8)

Adresse de l'instruction qui est en cours d'exécution.

creation_time

datetime

Heure de création du thread.

kernel_time

bigint

Temps du noyau utilisé par ce thread.

usermode_time

bigint

Temps utilisateur utilisé par ce thread.

stack_base_address

varbinary(8)

Adresse mémoire haute de la pile de ce thread.

stack_end_address

varbinary(8)

Adresse mémoire basse de la pile de ce thread.

stack_bytes_committed

int

Nombre d'octets validés dans la pile.

stack_bytes_used

int

Nombre d'octets actuellement utilisés activement sur le thread.

affinity

bigint

Masque UC sur lequel ce thread s'exécute. Cela dépend de la valeur configurée par l'instruction ALTER SERVER CONFIGURATION SET PROCESS AFFINITY. Il peut être différent du planificateur en cas d'affinité logicielle.

Priority

int

Priorité du thread.

Locale

int

Indicateur de paramètres régionaux mis en cache pour le thread.

Token

varbinary(8)

Descripteur du jeton d'emprunt d'identité mis en cache pour le thread.

is_impersonating

int

Indique si ce thread utilise l'emprunt d'identité Win32.

1 = Le thread utilise des informations d'autorisation sécurisées différentes des informations par défaut du processus. Cela indique que le thread emprunte l'identité d'une entité différente de celle qui a créé le processus.

is_waiting_on_loader_lock

int

État du système d'exploitation qui indique si le thread attend le verrou du chargeur.

fiber_data

varbinary(8)

Fibre Win32 actuelle en cours d'exécution sur le thread. S'applique uniquement lorsque SQL Server est configuré pour le regroupement léger.

thread_handle

varbinary(8)

À usage interne uniquement.

event_handle

varbinary(8)

À usage interne uniquement.

scheduler_address

varbinary(8)

Adresse mémoire du planificateur associé au thread. Pour plus d'informations, consultez sys.dm_os_schedulers (Transact-SQL).

worker_address

varbinary(8)

Adresse mémoire du thread de travail associé à ce thread. Pour plus d'informations, consultez sys.dm_os_workers (Transact-SQL).

fiber_context_address

varbinary(8)

Adresse interne du contexte de la fibre. S'applique uniquement lorsque SQL Server est configuré pour le regroupement léger.

self_address

varbinary(8)

Pointeur de cohérence interne.

processor_group

smallint

Stocke l'ID de groupe du processeur.

Autorisations

Requiert l'autorisation VIEW SERVER STATE sur le serveur.

Exemples

Au démarrage, SQL Server démarre des threads puis leur associe des threads de travail. Cependant, des composants externes (par exemple une procédure stockée étendue) peuvent démarrer des threads sous le processus SQL Server. SQL Server ne contrôle pas ces threads. sys.dm_os_threads peut fournir des informations sur les threads non autorisés qui consomment des ressources lors du processus SQL Server.

La requête suivante permet de rechercher des threads de travail (ainsi que la durée utilisée pour l'exécution) qui exécutent des threads non démarrés par SQL Server.

Notes

Dans un souci de concision, la requête suivante utilise un astérisque (*) dans l'instruction SELECT. Évitez d'utiliser l'astérique (*), surtout avec des affichages catalogue, des vues de gestion dynamique et des fonctions table système. Dans les prochaines mises à niveau et versions de Microsoft SQL Server, il est possible que des colonnes soient ajoutées et que l'ordre des colonnes soit modifié dans ces vues et fonctions. Ces changements entraveront peut-être le fonctionnement des applications qui attendent un ordre et un nombre de colonnes spécifiques.

SELECT *
  FROM sys.dm_os_threads
  WHERE started_by_sqlservr = 0;