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 la 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. |
affinité |
bigint |
Masque processeur sur lequel ce thread est censé s'exécuter. Il dépend de la valeur indiquée dans l'option de configuration de masque d'affinitésp_configure. |
paramètres régionaux |
int |
LCID de la mémoire cache locale du thread. |
priorité |
int |
Priorité du thread. |
jeton |
varbinary(8) |
Descripteur du jeton d'emprunt d'identité du 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. |
Autorisations
Nécessite 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 dans le 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.
[!REMARQUE]
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 MicrosoftSQL 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;