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.
![]() |
---|
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;