Freigeben über


sys.dm_os_threads (Transact-SQL)

Gibt eine Liste aller SQL Server-Betriebssystemthreads zurück, die unter dem SQL Server-Prozess ausgeführt werden.

Spaltenname

Datentyp

Beschreibung

thread_address

varbinary(8)

Speicheradresse (Primärschlüssel) des Threads.

started_by_sqlservr

bit

Gibt den Threadinitiator an.

1 = Der Thread wurde von SQL Server gestartet.

0 = Der Thread wurde von einer anderen Komponente gestartet, z. B. von einer erweiterten gespeicherten Prozedur innerhalb von SQL Server.

os_thread_id

int

ID des vom Betriebssystem zugewiesenen Threads.

status

int

Internes Statusflag.

instruction_address

varbinary(8)

Adresse der zurzeit ausgeführten Anweisung.

creation_time

datetime

Zeit, zu der dieser Thread erstellt wurde.

kernel_time

bigint

Menge der von diesem Thread verwendeten Kernelzeit.

usermode_time

bigint

Menge der von diesem Thread verwendeten Benutzerzeit.

stack_base_address

varbinary(8)

Speicheradresse der höchsten Stapeladresse für diesen Thread.

stack_end_address

varbinary(8)

Speicheradresse der niedrigsten Stapeladresse für diesen Thread.

stack_bytes_committed

int

Anzahl von Bytes, für die im Stapel ein Commit ausgeführt wurde.

stack_bytes_used

int

Anzahl von Bytes, die aktiv im Thread verwendet werden.

affinity

bigint

CPU-Maske, in der dieser Thread ausgeführt wird. Dies ist abhängig vom Wert, der durch die ALTER SERVER CONFIGURATION SET PROCESS AFFINITY-Anweisung konfiguriert wird. Diese unterscheidet sich bei "weicher" Affinität möglicherweise vom Zeitplanungsmodul.

Priority

int

Prioritätswert dieses Threads.

Locale

int

Zwischengespeicherter Gebietsschemabezeichner (LCID) für den Thread.

Token

varbinary(8)

Zwischengespeichertes Identitätswechsel-Tokenhandle für den Thread.

is_impersonating

int

Gibt an, ob dieser Thread den Win32-Identitätswechsel verwendet.

1 = Der Thread verwendet Sicherheitsanmeldeinformationen, die von der Standardeinstellung des Prozesses abweichen. Dieser Wert gibt an, dass der Thread die Identität einer Entität annimmt, die nicht mit der Entität übereinstimmt, die den Prozess erstellt hat.

is_waiting_on_loader_lock

int

Betriebssystemstatus, der angibt, ob der Thread in der Loadersperre wartet.

fiber_data

varbinary(8)

Aktuelle Win32-Fiber, die im Thread ausgeführt wird. Dies gilt nur, wenn SQL Server für Lightweightpooling konfiguriert ist.

thread_handle

varbinary(8)

Wird nur intern verwendet.

event_handle

varbinary(8)

Wird nur intern verwendet.

scheduler_address

varbinary(8)

Speicheradresse des Zeitplanungsmoduls, das diesem Thread zugeordnet ist. Weitere Informationen finden Sie unter sys.dm_os_schedulers (Transact-SQL).

worker_address

varbinary(8)

Speicheradresse des Arbeitsthreads, der an diesen Thread gebunden ist. Weitere Informationen finden Sie unter sys.dm_os_workers (Transact-SQL).

fiber_context_address

varbinary(8)

Interne Fiberkontextadresse. Dies gilt nur, wenn SQL Server für Lightweightpooling konfiguriert ist.

self_address

varbinary(8)

Interner Konsistenzzeiger.

processor_group

smallint

Speichert die Prozessorgruppen-ID.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Beispiele

Beim Start werden von SQL Server Threads gestartet, denen anschließend Arbeitsthreads zugeordnet werden. Externe Komponenten, z. B. eine erweiterte gespeicherte Prozedur, können jedoch Threads unter dem SQL Server-Prozess starten. Diese Threads unterliegen nicht der Steuerung durch SQL Server. sys.dm_os_threads können Informationen zu extern gestarteten Threads bereitstellen, die Ressourcen im SQL Server-Prozess verbrauchen.

Mit der folgenden Abfrage werden Arbeitsthreads zusammen mit der jeweiligen Ausführungszeit ermittelt, die nicht von SQL Server gestartete Threads ausführen.

HinweisHinweis

Aus Gründen der Kürze wird in der folgenden Abfrage ein Sternchen (*) in der SELECT-Anweisung verwendet. Vermeiden Sie die Verwendung des Sternchens (*) insbesondere für Katalogsichten, dynamische Verwaltungssichten und Systemfunktionen mit Tabellenrückgabe. Bei zukünftigen Aktualisierungen und Versionen von Microsoft SQL Server könnten diesen Sichten und Funktionen Spalten hinzugefügt oder die Reihenfolge der Spalten geändert werden. Diese Änderungen könnten zur Funktionsunfähigkeit von Anwendungen führen, die eine bestimmte Reihenfolge und Anzahl von Spalten erwarten.

SELECT *
  FROM sys.dm_os_threads
  WHERE started_by_sqlservr = 0;