Udostępnij za pośrednictwem


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