sys.dm_os_tasks (Transact-sql)

Örneği içinde etkin olan her görev için bir satır döndürür SQL Server.

Sütun adı

Veri türü

Açıklama

task_address

varbinary(8)

Nesnenin bellek adresi.

task_state

nvarchar(60)

Görev durumu. Bu, aşağıdakilerden biri olabilir:

BEKLEMEDE: iş parçacığı için bekleniyor.

runnable: Çalıştırılabilir, ancak hisse almak için bekliyor.

Koşu: Zamanlayıcı üzerinde çalışmakta.

suspended: işçi var, ancak bir olayı beklenirken.

YAPILIR: tamamlandı.

Döngüsel: bir sayaç kilidi içinde sıkışmış.

context_switches_count

int

Bu görev tamamlandı Zamanlayıcı içerik geçişi numarası.

pending_io_count

int

Bu görev tarafından gerçekleştirilen fiziksel giriş çıkışları sayısı.

pending_io_byte_count

bigint

Bu görev tarafından gerçekleştirilen giriş çıkışları toplam bayt sayısı.

pending_io_byte_average

int

Bu görev tarafından gerçekleştirilen giriş çıkışları ortalama bayt sayısı.

scheduler_id

int

Üst Zamanlayıcı Kımlığı. Bu Görev Zamanlayıcı bilgiyle ilgili tanıtıcı budur. Daha fazla bilgi için, bkz. sys.dm_os_schedulers (Transact-sql).

session_id

smallint

Görevle ilişkilendirilmiş oturumun Kımlığı.

exec_context_id

int

Görevle ilişkilendirilmiş yürütme içerik Kımlığı.

request_id

int

Görevin istek Kımlığı. Daha fazla bilgi için, bkz. sys.dm_exec_requests (Transact-sql).

worker_address

varbinary(8)

Görev çalıştıran alt bellek adresi.

null = görev ya da işçi çalıştırmaları bekliyor veya görevi sadece çalışmasını bitirdi.

Daha fazla bilgi için, bkz. sys.dm_os_workers (Transact-sql).

host_address

varbinary(8)

Ana bellek adresi.

0 = Hosting görev oluşturmak için kullanılan değildi. Bu, bu görevi oluşturmak için kullanılan ana tanımlanmasına yardımcı olur.

Daha fazla bilgi için, bkz. sys.dm_os_hosts (Transact-sql).

parent_task_address

varbinary(8)

Nesnenin üst görev bellek adresi.

İzin

Sunucu üzerindeki VIEW server state izni gerektirir.

Örnekler

A.Paralel istekleri izleme

Paralel olarak yürütülen istekleri için sen-ecek görmek aynı kombinasyonu için birden çok satır (<session_id>, <request_id>). Bulmak için aşağıdaki sorgu kullanın Parallelism ölçüde tüm etkin istekleri.

[!NOT]

A request_id bir oturum içinde benzersizdir.

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;

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.Oturum kimlikleri Windows iş parçacığı ile ilişkilendirme

Bir oturum Kımlığı değerini bir Windows iş parçacığı kimliği ile ilişkilendirmek için aşağıdaki sorguyu kullanabilirsiniz Ardından, Windows Performans İzleyicisi'nde iplik performansını izleyebilirsiniz. Aşağıdaki sorgu, uyku oturumlar için bilgi vermez.

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

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

Ayrıca bkz.

Başvuru

Dinamik yönetimi görünümler ve işlevler (Transact-sql)

SQL Server işletim sistemi ilgili dinamik yönetim görünümleri (Transact-sql)

Diğer Kaynaklar

Memory Management Architecture