sys.dm_os_workers (Transact-sql)

Bir satır, sistemdeki her alt döndürür.

Sütun adı

Veri türü

Açıklama

worker_address

varbinary(8)

Alt bellek adresi.

status

int

Yalnızca iç kullanım.

is_preemptive

bit

1 = Alt preemptive planlama ile çalışıyor. Harici kod çalıştıran herhangi bir işçi preemptive zamanlaması altında çalıştırılır.

is_fiber

bit

1 = İşçi hafif havuzu ile çalışıyor. Daha fazla bilgi için, bkz. sp_configure (Transact-sql).

is_sick

bit

1 = İşçi olarak kaldı spin kilit elde çalışılıyor. Bu biti ayarlanmışsa bu çekişme sık erişilen nesnesinde bir sorun belirtebilir.

is_in_cc_exception

bit

1 = Alt olmayan bir işleme şu an- SQL Server istisna.

is_fatal_exception

bit

Bu alt önemli özel durum alınan olup olmadığını belirtir.

is_inside_catch

bit

1 = Alt şu anda bir özel durum işleme.

is_in_polling_io_completion_routine

bit

1 = Alt şu anda bir bekleyen g/Ç için bir I/O tamamlama yordamı çalışıyor. Daha fazla bilgi için, bkz. sys.dm_io_pending_io_requests (Transact-sql).

context_switch_count

int

Bu alt tarafından gerçekleştirilen bağlam anahtarları Zamanlayıcı sayısı.

pending_io_count

int

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

pending_io_byte_count

bigint

Tüm fiziksel giriş çıkışları bu çalışan için bekleyen bayt sayısı.

pending_io_byte_average

int

Ortalama fiziksel giriş çıkışları bu çalışan için bayt sayısı.

wait_started_ms_ticks

int

Gelin zamanında gelinms_ticks, bu alt suspended durumuna girdi. Bu değeri çıkarılarak ms_ticksde sys.dm_os_sys_info bekleyen çalışan milisaniye sayısını döndürür.

wait_resumed_ms_ticks

int

Gelin zamanında gelinms_ticks, bu alt runnable durumu girdiğinizde. Bu değeri çıkarılarak ms_ticksde sys.dm_os_sys_info işçi runnable sırada olmuştur milisaniye sayısını döndürür.

task_bound_ms_ticks

bigint

Gelin zamanında gelinms_ticks, bu çalışan için görev bağlı olduğunda.

worker_created_ms_ticks

bigint

Gelin zamanında gelinms_ticks, bir işçi oluşturulduğunda.

exception_num

int

Bu alt karşılaştı son durum hata sayısı.

exception_severity

int

Bu alt karşılaştı son durum önem.

exception_address

varbinary(8)

Özel durum gönderdi kod adresi

affinity

bigint

İşçi iş parçacığı benzeşme. İş parçacığı benzeşme eşleşen sys.dm_os_threads (Transact-sql).

state

nvarchar(60)

İşçi durumu. Aşağıdaki değerlerden biri olabilir:

INIT = alt-şu anda başlatıldı.

ÇALIŞAN = alt nonpreemptively veya preemptively şu anda çalışıyor.

runnable = alt Zamanlayıcı üzerinde çalışmaya hazır.

ASKIYA = alt şu anda, bir sinyal göndermek bir olayı beklenirken askıya alınır.

start_quantum

bigint

Bu alt geçerli Çalıştır başında milisaniye cinsinden süre.

end_quantum

bigint

Bu alt geçerli Çalıştır sonunda milisaniye cinsinden süre.

last_wait_type

nvarchar(60)

Son bekleme türü. Bekleme türlerinin listesi için bkz: sys.dm_os_wait_stats (Transact-sql).

return_code

int

Dönüş değeri son bekleyin. Aşağıdaki değerlerden biri olabilir:

0 = BAŞARI

3 = KİLİTLENME

4 = PREMATURE_WAKEUP

258 = ZAMAN AŞIMI

quantum_used

bigint

Yalnızca iç kullanım.

max_quantum

bigint

Yalnızca iç kullanım.

boost_count

int

Yalnızca iç kullanım.

tasks_processed_count

int

İşlenen bu alt görevlerin sayısı.

fiber_address

varbinary(8)

Bu alt ilişkili olduğu Fiber bellek adresi.

null = SQL Serverhafif havuzu için yapılandırılmadı.

task_address

varbinary(8)

Geçerli görev bellek adresi. Daha fazla bilgi için, bkz. sys.dm_os_tasks (Transact-sql).

memory_object_address

varbinary(8)

Alt bellek nesnenin bellek adresi. Daha fazla bilgi için, bkz. sys.dm_os_memory_objects (Transact-sql).

thread_address

varbinary(8)

Bu işçi ile ilişkili iş parçacığının bellek adresi. Daha fazla bilgi için, bkz. sys.dm_os_threads (Transact-sql).

signal_worker_address

varbinary(8)

Bu nesneyi son erdiği alt bellek adresi. Daha fazla bilgi için, bkz. sys.dm_os_workers (Transact-sql).

scheduler_address

varbinary(8)

Scheduler bellek adresi. Daha fazla bilgi için, bkz. sys.dm_os_schedulers (Transact-sql).

processor_group

smallint

Bu iş parçacığı için atanan işlemci grup kimliği depolar.

Açıklamalar

Çalışan devlet ÇALIŞIYORSA ve alt nonpreemptively, adres eşleşmeleri işçi çalışıyor active_worker_addressde sys.dm_os_schedulers.

Olaya bekleyen işçi erdiği zaman, işçi çalıştırılabilir sıranın başında yer alıyor. SQL ServerBunun alt sıranın sonuna yerleştirilir sonra bir satır, bir bin kez olmasını sağlar. Bir alt sıranın sonuna taşıma bazı performans etkileri vardır.

İzinler

Sunucu üzerindeki VIEW server state izni gerektirir.

Örnekler

Ne kadar bir işçi bir suspended veya runnable durumu çalışmakta olduğu bulmak için aşağıdaki sorguyu kullanabilirsiniz.

SELECT 
    t1.session_id,
    CONVERT(varchar(10), t1.status) AS status,
    CONVERT(varchar(15), t1.command) AS command,
    CONVERT(varchar(10), t2.state) AS worker_state,
    w_suspended = 
      CASE t2.wait_started_ms_ticks
        WHEN 0 THEN 0
        ELSE 
          t3.ms_ticks - t2.wait_started_ms_ticks
      END,
    w_runnable = 
      CASE t2.wait_resumed_ms_ticks
        WHEN 0 THEN 0
        ELSE 
          t3.ms_ticks - t2.wait_resumed_ms_ticks
      END
  FROM sys.dm_exec_requests AS t1
  INNER JOIN sys.dm_os_workers AS t2
    ON t2.task_address = t1.task_address
  CROSS JOIN sys.dm_os_sys_info AS t3
  WHERE t1.scheduler_id IS NOT NULL;

SELECT 
    t1.session_id,
    CONVERT(varchar(10), t1.status) AS status,
    CONVERT(varchar(15), t1.command) AS command,
    CONVERT(varchar(10), t2.state) AS worker_state,
    w_suspended = 
      CASE t2.wait_started_ms_ticks
        WHEN 0 THEN 0
        ELSE 
          t3.ms_ticks - t2.wait_started_ms_ticks
      END,
    w_runnable = 
      CASE t2.wait_resumed_ms_ticks
        WHEN 0 THEN 0
        ELSE 
          t3.ms_ticks - t2.wait_resumed_ms_ticks
      END
  FROM sys.dm_exec_requests AS t1
  INNER JOIN sys.dm_os_workers AS t2
    ON t2.task_address = t1.task_address
  CROSS JOIN sys.dm_os_sys_info AS t3
  WHERE t1.scheduler_id IS NOT NULL;

Sonuç kümesi buradadır.

session_id status command worker_state w_suspended w_runnable

---------- ---------- --------------- ------------ ----------- --------------------

4 background LAZY WRITER SUSPENDED 688 688

6 background LOCK MONITOR SUSPENDED 4657 4657

19 background BRKR TASK SUSPENDED 603820344 603820344

14 background BRKR EVENT HNDL SUSPENDED 63583641 63583641

51 running SELECT RUNNING 0 0

2 background RESOURCE MONITO RUNNING 0 603825954

3 background LAZY WRITER SUSPENDED 422 422

7 background SIGNAL HANDLER SUSPENDED 603820485 603820485

13 background TASK MANAGER SUSPENDED 603824704 603824704

18 background BRKR TASK SUSPENDED 603820407 603820407

9 background TRACE QUEUE TAS SUSPENDED 454 454

52 suspended SELECT SUSPENDED 35094 35094

1 background RESOURCE MONITO RUNNING 0 603825954

Çıktı, ne zaman w_runnableve w_suspendedolan bu temsil suspended durumda çalışan zaman eşit. Aksi takdirde, w_runnablerunnable durumu işçi tarafından harcanan süreyi temsil eder. Çıktı, oturum 52olan SUSPENDEDiçin 35,094milisaniye.

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