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 hängt von dem von der ALTER SERVER CONFIGURATION SET PROCESS AFFINITY-Anweisung konfigurierten Wert ab. Kann sich bei weicher Affinität vom Zeitplanungsmodul unterscheiden. |
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) |
Nur zur internen Verwendung. |
event_handle |
varbinary(8) |
Nur zur internen Verwendung. |
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. SQL Server hat keine Kontrolle über diese Threads. 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.
Hinweis |
---|
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 Upgrades 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;
Siehe auch
Verweis
Dynamische Verwaltungssichten und Funktionen (Transact-SQL)
sys.dm_os_workers (Transact-SQL)
Dynamische Verwaltungssichten in Verbindung mit dem SQL Server-Betriebssystem (Transact-SQL)