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