Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Zwraca jeden wiersz dla każdego zadania aktywnego w instancji SQL Server. Zadanie jest podstawową jednostką wykonania w SQL Serverze. Przykłady zadań to zapytanie, logowanie, wylogowanie oraz zadania systemowe, takie jak aktywność sprzątania duchów, aktywność punktów kontrolnych, zapisywanie logów, równoległa aktywność powtórek. Więcej informacji o zadaniach znajdziesz w przewodniku po architekturze wątków i zadań.
Uwaga / Notatka
Aby wywołać to z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_os_tasks. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| task_address | varbinary(8) | Adres pamięci obiektu. |
| task_state | nvarchar(60) | Stan zadania. Może to być jeden z następujących elementów: W OCZEKIWANIU: Czekam na wątek pracowniczy. RUNNABLE: Runnable, ale czeka na otrzymanie kwantu. DZIAŁANIE: Obecnie działam na harmonogramie. ZAWIESZONY: Ma pracownika, ale czeka na wydarzenie. KONIEC: Ukończone. SPINLOOP: Utknął w spinlocku. |
| context_switches_count | int | Liczba przełączników kontekstu harmonogramu, które to zadanie wykonało. |
| pending_io_count | int | Liczba fizycznych operacji I/O wykonywanych przez to zadanie. |
| pending_io_byte_count | bigint | Całkowita liczba bajtów I/O wykonywanych przez to zadanie. |
| pending_io_byte_average | int | Średnia liczba bajtów I/O wykonywanych przez to zadanie. |
| scheduler_id | int | Identyfikator nadrzędnego planera. To jest uchwyt do informacji planisty dla tego zadania. Więcej informacji można znaleźć w sys.dm_os_schedulers (Transact-SQL). |
| session_id | smallint | ID sesji powiązanej z zadaniem. |
| exec_context_id | int | Identyfikator kontekstu wykonania powiązany z zadaniem. |
| request_id | int | Identyfikacja żądania zadania. Aby uzyskać więcej informacji, zobacz sys.dm_exec_requests (Transact-SQL). |
| worker_address | varbinary(8) | Adres pamięci pracownika, który wykonuje zadanie. NULL = Zadanie albo czeka, aż pracownik będzie mógł się uruchomić, albo właśnie zakończyło działanie. Więcej informacji można znaleźć w sys.dm_os_workers (Transact-SQL). |
| host_address | varbinary(8) | Adres pamięci hosta. 0 = Hosting nie został użyty do utworzenia zadania. Pomaga to zidentyfikować hosta, który został użyty do utworzenia tego zadania. Więcej informacji można znaleźć w sys.dm_os_hosts (Transact-SQL). |
| parent_task_address | varbinary(8) | Adres pamięci zadania, które jest rodzicem obiektu. |
| pdw_node_id | int |
Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW) Identyfikator węzła, w ramach którego znajduje się ta dystrybucja. |
Permissions
W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.
W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.
Przykłady
A. Monitorowanie żądań równoległych
Dla żądań wykonywanych równolegle zobaczysz wiele wierszy dla tej samej kombinacji (<session_id>, <request_id>). Użyj poniższego zapytania, aby znaleźć opcję konfiguracji serwera Konfiguruj maksymalny stopień równoległości dla wszystkich aktywnych żądań.
Uwaga / Notatka
request_id jest wyjątkowy w ramach sesji.
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. Łączenie identyfikatorów sesji z wątkami Windows
Możesz użyć następującego zapytania, aby powiązać wartość ID sesji z identyfikatorem wątku Windows. Następnie możesz monitorować wydajność wątku w Windows Performance Monitor. Poniższe zapytanie nie zwraca informacji o sesjach uśpionych.
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
Zobacz także
Dynamiczne widoki zarządzania związane z systemem operacyjnym PROGRAMU SQL Server (Transact-SQL)
Przewodnik po architekturze wątków i zadań