sys.dm_os_tasks (języka Transact-SQL)
Zwraca jeden wiersz dla każdego zadania, który jest aktywny w wystąpienie SQL Server.
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
task_address |
varbinary(8) |
Adres pamięci obiektu. |
task_state |
nvarchar(60) |
Stan zadania.Może to być jeden z następujących czynności: OCZEKIWANIE: Oczekiwanie na wątekroboczego. MOŻLIWE DO URUCHOMIENIA: Runnable, ale czeka na kwant. URUCHAMIANIE: Aktualnie uruchomione na harmonogram. ZAWIESZONE: Pracownik ma, 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 we/wy, wykonywane przez to zadanie. |
pending_io_byte_count |
bigint |
Bajt całkowita liczba operacji We/Wy, wykonywane przez to zadanie. |
pending_io_byte_average |
int |
Średnia liczba bajtów We/Wy, wykonywane przez to zadanie. |
scheduler_id |
int |
Identyfikator harmonogramu nadrzędnej.Jest to dojście do informacji harmonogram tego zadania.Aby uzyskać więcej informacji, zobacz sys.dm_os_schedulers (języka Transact-SQL). |
session_id |
smallint |
Identyfikator sesja , który jest skojarzony z zadaniem. |
exec_context_id |
int |
Identyfikator kontekstu wykonanie jest skojarzony z zadaniem. |
request_id |
int |
Identyfikator żądania zadania.Aby uzyskać więcej informacji, zobacz sys.dm_exec_requests (języka Transact-SQL). |
worker_address |
varbinary(8) |
Adres pamięci pracownika, na którym działa zadanie. NULL = zadań albo oczekuje pracownika można uruchamiać, lub zadanie właśnie zakończył działanie. Aby uzyskać więcej informacji, zobacz sys.dm_os_workers (języka Transact-SQL). |
host_address |
varbinary(8) |
Adres hosta pamięci. 0 = Hosting nie został użyty do utworzenia zadania.Pomaga to identyfikować hosta, który został użyty do utworzenia tego zadania. Aby uzyskać więcej informacji, zobacz sys.dm_os_hosts (języka Transact-SQL). |
parent_task_address |
varbinary(8) |
Adres pamięci zadania nadrzędnego obiektu. |
Uprawnienia
Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.
Przykłady
A.Monitorowanie żądań równoległych
Dla żądań, które są wykonywane równolegle, zobaczy wiele wierszy dla tej samej kombinacji (<session_id>, <request_id>).Znajdź za pomocą następującej kwerendy stopień równoległości prostych dla wszystkich aktywnych żądań.
Ostrzeżenie
A request_id jest unikatowa w 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 identyfikatory sesja z wątków systemu Windows
Aby skojarzyć wartość Identyfikatora sesja z identyfikatorem wątek systemu Windows za pomocą następującej kwerendyNastę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