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)