sys.dm_os_schedulers (Transact-SQL)
Çizelgeleyici başına bir satır döndürür. SQL Server Burada her Çizelgeleyici, belirli bir işlemciye eşleştirilir. Bu görünüm, bir Zamanlayıcı durumunu izlemek için veya ard arda görevler tanımlamak için kullanın.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
scheduler_address |
varbinary(8) |
Zamanlayıcı bellek adresi.Null değil. |
parent_node_id |
int |
Zamanlayıcı, ait olduğu için üst düğüm olarak da bilinen bir düğüm KIMLIĞI.Bu, nonuniform bellek erişimi (NUMA) herhangi bir düğümü temsil eder.Null değil. |
scheduler_id |
int |
Zamanlayıcı TEŞHIS koduNormal sorgular çalıştırmak için kullanılan tüm schedulers 255'den daha az KIMLIK numaraları vardır.Büyük veya eşit 255 kimliklerine sahip bu schedulers tarafından dahili olarak kullanılır SQL Server, ayrılmış bir yönetici bağlantı Çizelgeleyici gibi. Null değil. |
cpu_id |
smallint |
Bu Zamanlayıcı ilişkilendirildiği CPU KIMLIĞI.If SQL Server yapılandırılmış benzeşimi ile çalıştırmak için , değer CPU, Zamanlayıcı çalışıyor olması beklenir kimliğidir. 255 Benzeşme maskesi belirtilmedi =. Null değil. |
Durum |
nvarchar(60) |
Zamanlayıcı durumunu gösterir.Aşağıdaki değerlerden biri olabilir:
Null değil. Iç için olan istekleri işlemek için kullanılan GIZLI schedulers Database Engine. GÖRÜNÜR schedulers kullanıcı isteklerini işlemek için kullanılır. Işlemci benzeşimi maskesi çevrimdışı ve bu nedenle, tüm istekleri işlemek için kullanılmadığından OFFLINE schedulers eşlenir.ONLINE schedulers benzeşme maskesini çevrimiçi ve kullanılabilir iş parçacığı işleme işlemci eşleyin. DAC Zamanlayıcı, bir özel yönetici bağlantısı altında çalıştığını gösterir. The schedulers yanıt olarak etkin bir CPU olay ekle eklenen HOT EKLENEN gösterir. |
is_online |
bit |
If SQL Server yapılandırılmış kullanılabilir işlemcilerin yalnızca bir kısmını, sunucuda kullanmak için , bu yapılandırma işlemcilerle benzeşim maskesini içinde olmayan bazı schedulers eşleştirilir anlamına gelebilir. Diğer bir deyişle, durum, bu sütun, 0 değerini döndürür.Bu değer, Zamanlayıcı sorguları veya toplu işleri işlemek için kullanıldığını yok anlamına gelir. Null değil. |
is_idle |
bit |
1 = Çizelgeleyici boştadır.Hiçbir çalışanları şu anda çalışmıyor.Null değil. |
preemptive_switches_count |
int |
Sayısı bu Zamanlayıcı, çalışanları preemptive moda geçti. Dışındaki bir kod yürütmek için SQL Server (genişletilmiş saklı yordamlar ve dağıtılmış sorgular örneğin), preemptive olmayan Çizelgeleyici denetimin çalıştırmak, bir iş parçacığı vardır. Bunu yapmak için , bir alt preemptive moduna geçiş yapar. |
context_switches_count |
int |
Bu Zamanlayıcı üzerinde gerçekleşen bağlam anahtarlarının sayısı.Null değil. Diğer çalışanları çalışmasına izin vermek için , geçerli çalışan alt Zamanlayıcı denetimi relinquish veya içeriğinde geçiş var.
Note:
Işçi Zamanlayıcı verir ve kendisini runnable sıraya koyar ve daha sonra başka bir çalışanları bulur, alt kendisini seçin.Bu durumda, context_switches_count güncelleştirilir.yield_count güncelleştirildi.
|
idle_switches_count |
int |
Sayıda Zamanlayıcı Boşta iken bir olayı bekliyor.Bu sütun benzer context_switches_count.Null değil. |
current_tasks_count |
int |
Bu Zamanlayıcı ile ilişkili geçerli görevleri sayısı.Bu sayaç, aşağıdakileri içerir:
Bir görev tamamlandığında, bu indirildiği sayısıdır.Null değil. |
runnable_tasks_count |
int |
Çalışanları (runnable sıraya göre planlanmış bekleniyor, kendilerine atanan görevlerle sayısı.Null değil. |
current_workers_count |
int |
Bu Zamanlayıcı ile ilişkili olan çalışanları sayısı.Bu sayaç, herhangi bir görevin atanmamış olan çalışanları içerir.Null değil. |
active_workers_count |
int |
Etkin olan çalışanları sayısı.Etkin bir çalışan hiçbir zaman preemptive, ilişkili bir görevi olmalıdır ve ya da, runnable veya askıya alınan çalıştırıyor.Null değil. |
work_queue_count |
bigint |
Görevleri, bekleyen sıra numarası.Bu görevler, bunları seçmek bir çalışan için bekleyen.Null değil. |
pending_disk_io_count |
int |
Bekleyen tamamlanması için bekleyen bir g/Ç sayısı.Her Çizelgeleyici listesini bekleyen g/ç işlemleri, tamamlanan olup olmadığını belirlemek için işaretli olan her saat içerik anahtar yok.Istek eklendiğinde, sayacı artırılır.Istek işlemi tamamlandığında bu indirildiği sayısıdır.Bu numara, g/Ç durumunu göstermez.Null değil. |
load_factor |
int |
Bu Zamanlayıcı algılanan yükünü belirten iç değeri.Bu değer, yeni bir görev bu Çizelgeleyici veya başka bir zamanlayıcı konması olup olmadığını belirlemek için kullanılır.Bu değer, schedulers düzgün yüklenmiş olduğunu görüntülendiğinde amacıyla hata ayıklamak için yararlıdır.Içinde SQL Server 2000, görev için belirli bir zamanlayıcı yönlendirilir. However, in SQL Server, the routing decision is made based on the load on the scheduler.SQL Server also uses a load factor of nodes and schedulers to help determine the best location to acquire resources.Yük faktörü, bir görev enqueued, arttırılır.Yük faktörü, bir görev tamamlandığında, azalır.Yük etkene kullanarak yardımcı olur. SQL Server Işletim SISTEMI, iş yükü daha iyi bakiye. Null değil. |
yield_count |
int |
Bu Zamanlayıcı, ilerleme durumunu göstermek için kullanılan dahili değeri.Bu değer, Zamanlayıcı monitör tarafından işçi Zamanlayıcı, diğer çalışanlar için saat oluşturan değil olup olmadığını belirlemek için kullanılır.Bu değer, alt veya görev için yeni bir alt moda göstermez.Null değil. |
last_timer_activity |
bigint |
CPU ticks Çizelgeleyici Süreölçer sırasının zamanlayıcısı tarafından denetlenen son tarih.Null değil. |
failed_to_create_worker |
bit |
küme Yeni bir alt üzerinde bu zamanlayıcı oluşturulamadı, 1.Bu genellikle, bellek kısıtlamaları nedeniyle oluşur.Null. |
active_worker_address |
varbinary(8) |
Şu anda etkin olan bir çalışan bellek adresi.Null.Daha fazla bilgi için bkz:sys.dm_os_workers (Transact-SQL). |
memory_object_address |
varbinary(8) |
Çizelgeleyici bellek nesnesinin bellek adresi.NULLABLE değil. |
task_memory_object_address |
varbinary(8) |
Görev bellek nesnesinin bellek adresi.Null değil.Daha fazla bilgi için bkz:sys.dm_os_memory_objects (Transact-SQL). |
İzinler
Sunucudaki SUNUCU DURUM VIEW iznine gerek duyar.
Örnekler
C.Gizli ve nonhidden schedulers izleme
Aşağıdaki sorgu çalışanları ve görevlerin durumunu verir... SQL Server Tüm schedulers arasında. Bu sorgu, aşağıdakileri içeren bir bilgisayar sistemine yürütüldü:
Iki işlemciyle (CPU)
Iki (NUMA) düğümü
Bir CPU başına NUMA düğümü
Benzeşme maskesi küme için 0x03.
SELECT
scheduler_id,
cpu_id,
parent_node_id,
current_tasks_count,
runnable_tasks_count,
current_workers_count,
active_workers_count,
work_queue_count
FROM sys.dm_os_schedulers;
Here is the result set.
scheduler_id cpu_id parent_node_id current_tasks_count
------------ ------ -------------- -------------------
0 1 0 9
257 255 0 1
1 0 1 10
258 255 1 1
255 255 32 2
runnable_tasks_count current_workers_count
-------------------- ---------------------
0 11
0 1
0 18
0 1
0 3
active_workers_count work_queue_count
-------------------- --------------------
6 0
1 0
8 0
1 0
1 0
Çıktıyı, aşağıdaki bilgileri sağlar:
Beş zamanlamaları vardır.Iki schedulers bir KIMLIK değeri vardır. < 255. Schedulers kimliği >= 255 gizli schedulers bilinir. Çizelgeleyici 255 Özel yönetici bağlantısı (DAC) temsil eder. Bir DAC Çizelgeleyici her örnek.Bellek baskısı eşgüdümlemek kaynak izleyicileri Çizelgeleyici kullanın... 257 ve çizelgeleyicinin 258tek başına NUMA düğümü
Çıktıda 23 etkin görevler vardır.Bu görevler, kullanıcı istekleri tarafından başlatılan bir kaynak yönetimi görevlerini ek olarak içerir. SQL Server. Örnekleri SQL Server Kaynak MONITÖR (NUMA düğümü başına bir tane) YAVAŞ YAZıCı (NUMA düğümü başına), kilit MONITÖR, DENETIMNOKTASı ve LOG YAZıCı görevlerdir.
NUMA node 0 is mapped to CPU 1 and NUMA node 1 is mapped to CPU 0.SQL Server typically starts on a NUMA node other than node 0.Daha fazla bilgi için bkz:Disk tekdüze bellek erişimi'ni anlama.
Ile runnable_tasks_count döndürme 0, görevlerin yok etkin çalıştırıyorsunuz. Ancak, etkin oturum olabilir.
Çizelgeleyici 255 DAC temsil eden vardır. 3 çalışanları, kendisiyle ilişkilendirilmiş. Bu çalışanları sırasında ayrılır SQL Server Başlangıç ve değişmez. Bu çalışanları DAC sorgularını işlemek için kullanılır.Iki görevi bu Zamanlayıcı, bir Bağlantı Yöneticisi ve boş bir alt temsil eder.
active_workers_count Görevler ilişkili ve olmayan-preemptive modunda çalışan tüm çalışanları gösterir.Ağ dinleyicileri gibi bazı görevler, preemptive zamanlaması altında çalışır.
Gizli schedulers normal kullanıcı istekleri işlemez.DAC Çizelgeleyici dışındadır.Bu DAC Çizelgeleyici istekleri işlemek için bir iş parçacığı vardır.
b.Yoğun bir sistemde nonhidden schedulers izleme
Aşağıdaki sorgu yoğun olarak yüklenen nonhidden schedulers burada daha fazla istekleri kullanılabilir çalışanları tarafından işlenen çok kayıtlı durumunu gösterir.Bu örnekte, görevleri 256 çalışanlara atanır.Bazı görevler, bir çalışan için bir atama için bekleyen.Birden fazla görev, kaynak için bekleyen alt runnable sayımını gösterir.
Not
Çalışanları durumunu sorgulayarak bulabilirsiniz sys.dm_os_workers.Daha fazla bilgi için bkz:sys.dm_os_workers (Transact-SQL).
Sorgu aşağıdadır:
SELECT
scheduler_id,
cpu_id,
current_tasks_count,
runnable_tasks_count,
current_workers_count,
active_workers_count,
work_queue_count
FROM sys.dm_os_schedulers
WHERE scheduler_id < 255;
Here is the result set.
scheduler_id current_tasks_count runnable_tasks_count
------------ ------------------- --------------------
0 144 0
1 147 1
current_workers_count active_workers_count work_queue_count
--------------------- -------------------- --------------------
128 125 16
128 126 19
Bunun bir karşılaştırma aşağıdaki sonucu, hiçbir görev işçi almak için bekliyor birden çok runnable görevleri gösterir.The work_queue_count is 0 for both schedulers.
scheduler_id current_tasks_count runnable_tasks_count
------------ ------------------- --------------------
0 107 98
1 110 100
current_workers_count active_workers_count work_queue_count
--------------------- -------------------- --------------------
128 104 0
128 108 0