sys.dm_os_schedulers (Transact-SQL)
Zamanlayıcı başına bir satır döndürür SQL Server her Zamanlayıcı burada eşlenmiş tek bir işlemci.Bir Zamanlayıcı durumunu izleyebilir veya ard arda görevleri tanımlamak için bu görünümü kullanın.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
scheduler_address |
varbinary(8) |
Scheduler bellek adresi.Nullable değil. |
parent_node_id |
int |
Üst düğüm olarak da bilinen için Zamanlayıcı ait düğüm kimliği.Bu nonuniform bellek erişimi (numa) düğümü temsil eder.Nullable değil. |
scheduler_id |
int |
Çizelgeleyici Kimliği.Normal sorgular çalıştırmak için kullanılan tüm planlayıcılar 1048576 küçüktür kimlik numaraları vardır.Sıfırdan büyük veya eşit 1048576 kimliklerine sahip bu planlayıcılar tarafından dahili olarak kullanılan SQL Server, adanmış yönetici bağlantısı Zamanlayıcı. gibiNullable değil. |
cpu_id |
smallint |
cpu Zamanlayıcı atanan kimliği. Nullable değil. ![]()
255 değil göstermek hiçbir yakınlık olduğu gibi SQL Server 2005.Bakın sys.dm_os_threads (Transact-SQL) için ek benzeşimi bilgi.
|
status |
nvarchar(60) |
Zamanlayıcı durumunu gösterir.Aşağıdaki değerlerden biri olabilir:
Nullable değil. Gizli planlayıcılar için iç isteklerini işlemek için kullanılan Veritabanı Altyapısı.GÖRÜNÜR planlayıcılar, kullanıcı isteklerini işlemek için kullanılır. İşlemci benzeşimi maskesi çevrimdışı olan ve bu nedenle, tüm isteklerini işlemek için kullanılmadığından çevrimdışı planlayıcılar eşlenir.Çevrimiçi planlayıcılar benzeşme maskesini çevrimiçi ve iş parçacıkları işlemek kullanılabilir olan işlemciler eşleyin. DAC Zamanlayıcı adanmış yönetici bağlantısı altında çalıştığını gösterir. SICAK EKLENEN gösterir planlayıcılar eklendi yanıt olarak bir sıcak cpu olayekleyin. |
is_online |
bit |
SQL Server Yapılandırılmış sunucu üzerinde kullanılabilir işlemci yalnızca bir bölümünü kullanmak için bu yapılandırma için işlemci benzeşimi maskesi. olmayan bazı planlayıcılar eşleştirilir gelebilirBu sütun , durumolması durumunda, 0 değerini döndürür.Bu değer, Zamanlayıcı sorguları veya toplu işlemleri işlemek için kullanıldığını değil anlamına gelir. Nullable değil. |
is_idle |
bit |
1 = Zamanlayıcı boşta.Hiçbir çalışanlarının çalışmakta olan.Nullable değil. |
preemptive_switches_count |
int |
Bu Zamanlayıcı üzerinde işçilerini preemptive moduna geçmiş kez sayısı. Dışında yürütmek kodu SQL Server (örneğin, genişletilmiş saklı yordamlar ve dağıtılmış sorgular), bir iş parçacığı vardır yürütmek denetimin dışındapreemptive olmayan bir Zamanlayıcı.Bunun için işçi preemptive moduna geçer. |
context_switches_count |
int |
Bu Zamanlayıcı üzerinde oluşmuş içerik geçişi numarası.Nullable değil. Diğer çalışanlara çalışmasına izin vermek için geçerli çalışan alt Zamanlayıcı denetimi teknisyene veya içeriğinde geçiş var. ![]()
Bir alt Zamanlayıcı üretir ve kendisini runnable sıraya koyar ve diğer çalışanlara bulur, işçi kendisini seçin.Bu durum, context_switches_count güncelleştirilmez, ancak yield_count güncelleştirilir.
|
idle_switches_count |
int |
Sayısı Zamanlayıcı için bekleyen bir olay için boşta iken.Bu sütun benzer context_switches_count.Nullable değil. |
current_tasks_count |
int |
Bu Zamanlayıcı ile ilişkili geçerli görevler sayısı.Bu sayaç, aşağıdakileri içerir:
Görev tamamlandığında, bu sayısı azalır.Nullable değil. |
runnable_tasks_count |
int |
Runnable sırada Planlanacak bekliyor, kendilerine atanmış görevlerle çalışanlarının sayısı.Nullable değil. |
current_workers_count |
int |
Bu Zamanlayıcı ile ilişkili olan çalışanların sayısı.Bu sayaç, her görevin atanmamış olan işçilere içerir.Nullable değil. |
active_workers_count |
int |
Etkin olan çalışanların sayısı.Etkin bir alt asla preemptive, ilişkili bir görev olmalıdır ve ya da runnable ya da askıya alınmış çalışıyor.Nullable değil. |
work_queue_count |
bigint |
Görev bekleyen sıra sayısı.Bu görevler, onları çekmek işçi bekliyorsunuz.Nullable değil. |
pending_disk_io_count |
int |
Bekleyen tamamlanmasını bekleyen g/Ç sayısı.Her Zamanlayıcı listesine sahip oldukları edilmiş olup olmadığını belirlemek için her saat tamamlandı denetlenen giriş çıkışları yok bir bağlam değiştirme.İstek eklendiğinde, bu sayı artırılır.İstek tamamlandığında bu sayısı azalır.Bu sayı çıkışları durumunu göstermez.Nullable değil. |
load_factor |
int |
Bu Zamanlayıcı algılanan yükü gösteren iç değer.Bu değer, yeni bir Görev Zamanlayıcı bu veya başka bir Zamanlayıcı moduna olup olmadığını belirlemek için kullanılır.Bu değer, planlayıcılar eşit yüklenmemişse görüntülendiğinde ayıklamaya için yararlıdır.De SQL Server 2000, belirli bir Zamanlayıcı görev yönlendirilenBununla birlikte, SQL Server, yönlendirme kararı alınarak yükünü scheduler.SQL ServerAyrıca Yük faktörü düğümü planlayıcılar ve kaynakları sağlamak üzere en iyi yeri belirlemek için kullanır.Bir görev sıraya alındı, Yük faktörü artar.Yük faktörü, bir görev tamamlandığında azalır.Yükleme kullanarak Etkenler yardımcı SQL Server os Bakiye iş yükü daha iyi.Nullable değil. |
yield_count |
int |
Bu Zamanlayıcı üzerinde ilerleme durumunu göstermek için kullanılan iç değer.Bu değer, Zamanlayıcı İzleyicisi tarafından Zamanlayıcı üzerinde işçi saatdiğer çalışanları için istediðinde yok olup olmadığını belirlemek için kullanılır.Bu değer alt veya görev için yeni bir alt moda olduğunu göstermez.Nullable değil. |
last_timer_activity |
bigint |
Da cpu ticks, Zamanlayıcı süreölçer sırasının zamanlayıcısı tarafından denetlenen son saat .Nullable değil. |
failed_to_create_worker |
bit |
Yeni işçi üzerinde bu Zamanlayıcı oluşturulamadı, 1 olarak ayarlayın.Bu, genellikle bellek kısıtlamaları nedeniyle oluşur.NULL olur. |
active_worker_address |
varbinary(8) |
Şu an etkin olan alt bellek adresi.NULL olur.Daha fazla bilgi için, bkz. sys.dm_os_workers (Transact-SQL). |
memory_object_address |
varbinary(8) |
Scheduler bellek nesnesi bellek adresi.nullable değil. |
task_memory_object_address |
varbinary(8) |
Görev bellek nesnesi bellek adresi.Nullable değil.Daha fazla bilgi için, bkz. sys.dm_os_memory_objects (Transact-SQL). |
quantum_length_us |
bigint |
Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez.sqlos tarafından kullanılan Zamanlayıcı kuantum sergiler. |
İzinler
Sunucu üzerindeki görünüm server state izni gerektirir.
Örnekler
A.Gizli ve gizlenmemiş planlayıcılar izleme
Aşağıdaki sorgu çalışanlarının durumunu verir ve içindeki görevleri SQL Server üzerinden tüm planlayıcılar.Bu sorgu, aşağıda olan bir bilgisayar sistemine yürütüldü:
İki işlemci (CPU)
İki (numa) düğümü
NUMA düğümübaşına bir cpu
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;
Sonuç kümesi buradadır.
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ı aşağıdaki bilgileri sağlar:
Beş zamanlamaları vardır.İki planlayıcılar kimliğe sahip < 1048576.Planlayıcılar kimliği ile >= gizli planlayıcılar bilinen 1048576are.Zamanlayıcı 255 adanmış yönetici bağlantısı (DAC) temsil eder.Bir DAC Zamanlayıcı her örnekvardır.Bellek baskısı eşgüdüm kaynak izleyicileri Zamanlayıcı kullanmak 257 ve Zamanlayıcı 258, her NUMA düğümü
Çıktıda 23 etkin görevler vardır.Bu görevler kullanıcı isteklerine göre başladı kaynak yönetimi görevlerini ek olarak dahil SQL Server.Örnekleri SQL Server görevlerdir kaynak İZLEYİCİSİ ( NUMA düğümübaşına bir adet), TEMBEL Yazan ( NUMA düğümübaşına bir adet), kilit İZLEYİCİSİ, Denetim ve günlük yazan.
NUMA düğümü 0 cpu eşlenmiş 1 ve NUMA düğümü 1 cpu eşlenmiş 0.SQL ServerNUMA düğümü düğüm 0 dışında genellikle başlar.Daha fazla bilgi için, bkz. Tip olmayan bellek erişimi anlama.
İle runnable_tasks_count döndüren 0, var Hayır etkin olarak çalışan görevler.Ancak, etkin oturumlar var olabilir.
Zamanlayıcı 255 temsil eden DAC sahip 3 işçilere it. ile ilişkiliBu işçilere en tahsis SQL Server Başlangıç ve Değiştir.Bu işçilere DAC sorgularını işlemek için kullanılır.Bu Zamanlayıcı üzerinde iki görevi, bağlantı yöneticisi ve boşta olan bir alt temsil eder.
active_workers_count Görevler ilişkili ve olmayan-preemptive modu altında çalışan tüm işçilerini temsil eder.Ağ dinleyicileri gibi bazı görevleri preemptive zamanlaması altında çalıştırın.
Gizli planlayıcılar, normal kullanıcı isteklerini işlemez.DAC Zamanlayıcı istisnadır.Bu DAC Zamanlayıcı isteklerini işlemek için bir iş parçacığı vardır.
B.Gizlenmemiş planlayıcılar meşgul sistem izleme
Aşağıdaki sorgu daha fazla istek kullanılabilir çalışanları tarafından işlenebilir daha yüklediğini aşırı yüklü gizlenmemiş planlayıcılar durumunu gösterir.Bu örnekte, görevleri 256 çalışanlara atanır.Bazı görevler, işçi atama bekliyorsunuz.Bir kaynakiçin birden fazla görev bekleyen alt runnable sayısı anlamına gelir.
Not
Çalışanların 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;
Sonuç kümesi buradadır.
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
Karşılaştırma aşağıdaki sonucu, burada hiçbir görev işçi almak için bekleyen birden fazla runnable görevleri gösterir.work_queue_count Olan 0 için hem planlayıcılar.
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