sys.dm_os_tasks (Transact-SQL)
Zwraca jeden wiersz dla każdego zadania, która jest aktywna w wystąpieniu programu SQL Server.
Nazwa kolumna |
Typ danych |
Description |
---|---|---|
task_address |
varbinary(8) |
Adres pamięci obiektu. |
task_state |
nvarchar(60) |
Stan zadania.Może to być jedna z następujących czynności: OCZEKIWANIE: Oczekiwanie na wątek roboczego. RUNNABLE: Runnable, ale oczekujących na odbieranie kwant. URUCHAMIANIE: Aktualnie uruchomione na do harmonogramu. ZAWIESZONE: Zawiera pracownika, ale oczekuje na zdarzenie. ZROBIĆ: Ukończone. SPINLOOP: Zatrzymane w spinlock. |
context_switches_count |
int |
Liczba przełączeń kontekstu harmonogramu, które to zadanie zostało ukończone. |
pending_io_count |
int |
Numer fizycznego operacji We/Wy, które są wykonywane przez to zadanie. |
pending_io_byte_count |
bigint |
Bajtów Całkowita liczba operacji We/Wy, które są wykonywane przez to zadanie. |
pending_io_byte_average |
int |
Średnia liczba bajtów z operacjami wejścia/wyjścia, które są wykonywane przez to zadanie. |
scheduler_id |
int |
Identyfikator harmonogramu nadrzędnej.Jest to dojście do informacji harmonogramu dla tego zadania.Aby uzyskać więcej informacji zobaczsys.dm_os_schedulers (języka Transact-SQL). |
session_id |
smallint |
Identyfikator sesja, który jest skojarzony z zadaniem. |
exec_context_id |
int |
Identyfikator kontekstu wykonania jest skojarzony z zadaniem. |
request_id |
int |
Identyfikator żądania tego zadania.Aby uzyskać więcej informacji zobaczsys.dm_exec_requests (Transact-SQL). |
worker_address |
varbinary(8) |
Adres pamięci pracownika, na którym działa zadanie. Wartość NULL = zadań albo czeka na pracownika można było uruchomić lub zadanie po prostu zakończył działanie. Aby uzyskać więcej informacji zobaczsys.dm_os_workers (Transact-SQL). |
host_address |
varbinary(8) |
Adres pamięci tego hosta. 0 = Hosting nie został użyty do utworzenia zadania.W ten sposób, aby zidentyfikować hosta, który został użyty do utworzenia tego zadania. Aby uzyskać więcej informacji zobaczsys.dm_os_hosts (Transact-SQL). |
Uprawnienia
Wymaga uprawnienia VIEW SERVER STATE na serwerze.
Przykłady
A.Monitorowanie równoległych żądań
W przypadku żądań, które są wykonywane równolegle pojawia się wiele wierszy dla tej samej kombinacji)<session_id>, <request_id>).Aby znaleźć za pomocą następującej kwerendy stopień proste dla wszystkich aktywnych żądań.
Uwaga
A request_id jest unikatowa w ramach sesja.
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.Kojarzenie identyfikatorów sesja z wątków systemu Windows
Za pomocą następującej kwerendy można skojarzyć wartość IDENTYFIKATORA sesja z identyfikatorem wątek systemu Windows.Następnie można monitorować wydajność wątek w Monitorze wydajności systemu Windows.Następująca kwerenda nie zwraca informacje o sesji, które są w stanie uśpienia.
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