sys.dm_os_tasks (Transact-SQL)
Gibt eine Zeile für jeden aktiven Task in der SQL Server-Instanz zurück.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
task_address |
varbinary(8) |
Speicheradresse des Objekts. |
task_state |
nvarchar(60) |
Der Status des Tasks. Die folgenden Werte sind möglich: PENDING: Warten auf einen Arbeitsthread. RUNNABLE: Ausführbar, doch wird auf das Eintreffen eines Quantums gewartet. RUNNING: Wird derzeit auf dem Zeitplanungsmodul ausgeführt. SUSPENDED: Verfügt über einen Arbeitsthread, wartet jedoch auf ein Ereignis. DONE: Abgeschlossen. SPINLOOP: In einem Spinlock festgehalten. |
context_switches_count |
int |
Anzahl der Kontextwechsel im Zeitplanungsmodul, die dieser Task abgeschlossen hat. |
pending_io_count |
int |
Anzahl der physikalischen E/A-Vorgänge, die dieser Task ausgeführt hat. |
pending_io_byte_count |
bigint |
Gesamtbytezahl der von diesem Task ausgeführten E/A-Vorgänge. |
pending_io_byte_average |
int |
Durchschnittliche Bytezahl der von diesem Task ausgeführten E/A-Vorgänge. |
scheduler_id |
int |
ID des übergeordneten Zeitplanungsmoduls. Dies ist ein Handle für die Zeitplanungsmodul-Informationen zu diesem Task. Weitere Informationen finden Sie unter sys.dm_os_schedulers (Transact-SQL). |
session_id |
smallint |
ID der Sitzung, die dem Task zugeordnet ist. |
exec_context_id |
int |
Die dem Task zugeordnete Ausführungskontext-ID. |
request_id |
int |
Die ID der Anforderung des Tasks. Weitere Informationen finden Sie unter sys.dm_exec_requests (Transact-SQL). |
worker_address |
varbinary(8) |
Speicheradresse des Arbeitsthreads, der den Task ausführt. NULL = Task wartet entweder darauf, dass ein Arbeitsthread ausgeführt werden kann, oder die Ausführung des Threads wurde soeben beendet. Weitere Informationen finden Sie unter sys.dm_os_workers (Transact-SQL). |
host_address |
varbinary(8) |
Speicheradresse des Hosts. 0 = Hosting wurde zum Erstellen des Tasks nicht verwendet. Dadurch kann der Host identifiziert werden, der zum Erstellen dieses Tasks verwendet wurde. Weitere Informationen finden Sie unter sys.dm_os_hosts (Transact-SQL). |
parent_task_address |
varbinary(8) |
Speicheradresse des Tasks, der das übergeordnete Element des Objekts ist. |
Berechtigung
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Beispiele
A. Überwachen paralleler Anforderungen
Für parallel ausgeführte Anforderungen werden mehrere Zeilen für die gleiche Kombination von (<session_id>, <request_id>) angezeigt. Verwenden Sie die folgende Abfrage, um den Grad an Parallelität für alle aktiven Anforderungen zu finden.
Hinweis |
---|
request_id ist innerhalb einer Sitzung eindeutig. |
SELECT
task_address,
task_state,
context_switches_count,
pending_io_count,
pending_io_byte_count,
pending_io_byte_average,
scheduler_id,
session_id,
exec_context_id,
request_id,
worker_address,
host_address
FROM sys.dm_os_tasks
ORDER BY session_id, request_id;
B. Zuordnen von Sitzungs-IDs zu Windows-Threads
Mithilfe der folgenden Abfrage können Sie einer Windows-Thread-ID einen Sitzungs-ID-Wert zuordnen. Sie können dann die Leistung des Threads im Windows-Systemmonitor überwachen. Mit der folgenden Abfrage werden keine Informationen für ruhende Sitzungen (sleeping) zurückgegeben.
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO