Udostępnij za pośrednictwem


sys.dm_os_schedulers (języka Transact-SQL)

Zwraca jeden wiersz na harmonogram w SQL Server w przypadku gdy każdy harmonogram jest mapowany procesor, w którym poszczególne. Użyj tego widoku, aby monitorować stan harmonogramu lub do identyfikowania wykorzystał zadań.

Nazwa kolumna

Typ danych

Description

scheduler_address

varbinary(8)

Adres pamięci do harmonogramu.Nie jest pustych.

parent_node_id

int

Identyfikator węzła, który przez harmonogram zadań, do której należy ta znana również jako węzeł nadrzędny.Ten parametr reprezentuje pamięć typu węzła dostępu (NUMA).Nie jest pustych.

scheduler_id

int

Identyfikator harmonogramu.Wszystkie pracownikom, służące do uruchamiania kwerend regularnych mają numery identyfikacyjne, mniej niż 255.Te pracownikom, których identyfikatory większe niż lub równą 255 są używane wewnętrznie przez SQL Server, takie jak harmonogram połączeń dedykowanych administratora. Nie jest pustych.

cpu_id

smallint

Identyfikator PROCESORA, z którym skojarzony jest ten harmonogram.Jeśli SQL Server jest skonfigurowany do uruchamiania z koligacji, wartość jest IDENTYFIKATOREM PROCESORA, powinien być uruchomiony przez harmonogram zadań.

255 = Nie określono maski koligacji.

Nie jest pustych.

Stan

nvarchar(60)

Wskazuje stan przez harmonogram zadań.Może mieć jedną z następujących wartości:

  • UKRYTE W TRYBIE ONLINE

  • UKRYTE W TRYBIE OFFLINE

  • WIDOCZNE ONLINE

  • WIDOCZNE OFFLINE

  • WIDOCZNE ONLINE (DAC)

  • HOT_ADDED

Nie jest pustych.

UKRYTE pracownikom służą do przetwarzania żądań, które są wewnętrzne Database Engine. Pracownikom WIDOCZNE są używane do przetworzenia żądania użytkownika.

OFFLINE pracownikom mapować procesorów jest w trybie offline w maski koligacji i dlatego nie są używane do przetwarzania wszystkich żądań.ONLINE pracownikom mapować procesorów, które w maski koligacji są w trybie online i są dostępne do przetwarzania wątków.

DAC wskazuje przez harmonogram zadań jest uruchomiona w ramach połączenia dedykowane administratora.

DODATKIEM HOT wskazuje pracownikom zostały dodane w odpowiedzi na gorąco dodać zdarzenie PROCESORA.

is_online

bit

Jeśli SQL Server jest skonfigurowany do używania tylko niektóre z dostępnych procesorów na serwerze, konfiguracja ta może oznaczać, że niektóre pracownikom są mapowane na które nie znajdują się w maski koligacji procesorów. Jeżeli przypadek tak, to kolumna zwraca wartość 0.Ta wartość oznacza przez harmonogram zadań nie jest używany do przetwarzania kwerend lub partii.

Nie jest pustych.

is_idle

bit

1 = Harmonogram jest bezczynny.Pracownicy nie są obecnie uruchomione.Nie jest pustych.

preemptive_switches_count

int

Liczba określająca, ile razy pracowników na ten harmonogram mają przejściu do trybu preemptive.

Wykonanie kodu, który znajduje się poza SQL Server (na przykład rozszerzone procedury przechowywane i kwerendami rozproszonymi) wątek ma wykonać poza kontrolą-preemptive harmonogramu. W tym celu należy pracownik Przełącza tryb preemptive.

context_switches_count

int

Liczba przełączeń kontekstu, które wystąpiły na tym harmonogramu.Nie jest pustych.

Aby zezwolić na innych pracowników uruchomić, bieżący pracownik uruchomiony musi zrzeka się sterowania do harmonogramu lub przełączyć kontekst.

NoteNote:
Jeśli pracownik daje przez harmonogram zadań i umieszcza się w kolejce runnable i następnie znajdzie nie innych pracowników, pracownika powoduje zaznaczenie samego siebie.W takim przypadek context_switches_count nie zostanie zaktualizowana, ale yield_count jest aktualizowany.

idle_switches_count

int

Liczba określająca, ile razy oczekiwania zdarzenie podczas bezczynności przez harmonogram zadań.W tej kolumnie jest podobne do context_switches_count.Nie jest pustych.

current_tasks_count

int

Liczba bieżących zadań, które są skojarzone z tym harmonogramu.Ten licznik obejmuje następujące czynności:

  • Zadania, które oczekują na pracownika do ich wykonać.

  • Zadania, które są aktualnie oczekujących lub uruchamiania (w stanie SUSPENDED lub RUNNABLE).

Po zakończeniu zadania, ten licznik zostanie zmniejszona.Nie jest pustych.

runnable_tasks_count

int

Liczba pracowników z zadań przydzielonych do nich, oczekujące ma odbywać się w kolejce runnable.Nie jest pustych.

current_workers_count

int

Liczba pracowników, które są skojarzone z tym harmonogramu.Ten licznik obejmuje pracowników, które nie są przypisane dowolnego zadania.Nie jest pustych.

active_workers_count

int

Liczba pracowników, które są aktywne.Aktywnego pracownika nie jest nigdy preemptive, musi mieć skojarzone zadania programu i jest albo uruchomiony, runnable lub zawieszony.Nie jest pustych.

work_queue_count

bigint

Liczba zadań w kolejce oczekujących.Zadania te oczekują na pracownika je pobrać.Nie jest pustych.

pending_disk_io_count

int

Liczba oczekujących operacji We/Wy, oczekujących na być wypełnione.Każdy harmonogram zawiera listę oczekujących operacji We/Wy, które są sprawdzane w celu ustalenia, czy zostały one ukończone co czas jest przełączanie kontekstu.Licznik jest zwiększany po wstawieniu żądania.Ten licznik zostanie zmniejszona, kiedy żądanie zostało ukończone.Numer ten nie wskazuje stan operacji We/Wy.Nie jest pustych.

load_factor

int

Wewnętrzna wartość, która wskazuje, znane obciążenie tego harmonogramu.Ta wartość jest używana do określenia, czy powinny być traktowane nowe zadanie na ten harmonogram lub innego harmonogramu.Wartość ta jest przydatna do debugowania, gdy wydaje się, że pracownikom nie są równomiernie załadowany.W SQL Server 2000, zadanie jest przesyłane do określonego harmonogramu. 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.Współczynnik obciążenia jest zwiększane, gdy zadanie jest enqueued.Po zakończeniu zadania się zmniejszyła się współczynnik obciążenia.Korzystanie z czynników obciążenia ułatwia SQL Server System operacyjny lepiej równoważyć obciążenie pracy. Nie jest pustych.

yield_count

int

Wewnętrzna wartość, która jest używana do określenia postępu tego harmonogramu.Ta wartość jest używana przez Monitor harmonogram, aby określić, czy pracownik na przez harmonogram zadań nie jest produkcji do innych pracowników na czas.Ta wartość nie wskazuje pracownika lub zadania transitioned do nowego pracownika.Nie jest pustych.

last_timer_activity

bigint

W Takty PROCESORA podczas ostatniego kolejki czasomierza harmonogram był sprawdzany przez harmonogram.Nie jest pustych.

failed_to_create_worker

bit

zestaw do 1, jeśli nie można utworzyć nowego pracownika na ten harmonogram.Dzieje się zazwyczaj z powodu ograniczeń pamięci.Jest pustych.

active_worker_address

varbinary(8)

Adres pamięci pracownika, który jest obecnie aktywny.Jest pustych.Aby uzyskać więcej informacji zobaczsys.dm_os_workers (Transact-SQL).

memory_object_address

varbinary(8)

Adres pamięci harmonogramu obiektu pamięci.Nie jest PUSTYCH.

task_memory_object_address

varbinary(8)

Adres pamięci zadania obiektu pamięci.Nie jest pustych.Aby uzyskać więcej informacji zobaczsys.dm_os_memory_objects (Transact-SQL).

Uprawnienia

Wymaga uprawnienia VIEW SERVER STATE na serwerze.

Przykłady

A.Monitorowanie pracownikom ukryte i nonhidden

Następująca kwerenda wyświetla stan zadań i pracowników SQL Server we wszystkich pracownikom. Tej kwerendy zostało wykonane na komputerze z następujących czynności:

  • Dwa procesory (procesorów)

  • Dwa węzły (NUMA)

  • Jednego PROCESORA węzeł NUMA

  • Ustawić maski koligacji 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

Dane wyjściowe są dostępne następujące informacje:

  • Istnieje pięć harmonogramów.Dwa pracownikom mają wartość IDENTYFIKATORA < 255. Pracownikom z IDENTYFIKATOREM >= 255 są znane jako ukryty pracownikom. Harmonogram 255 reprezentuje połączenie dedykowane administratora (DAC). Istnieje jeden harmonogram DAC każdego wystąpienie.Monitorów zasób, które koordynują ciśnienia pamięci za pomocą harmonogramu 257 i harmonogramu 258jeden na węzeł NUMA

  • Brak 23 zadania aktywne w danych wyjściowych.Zadania te obejmują żądań użytkownika w uzupełnieniu do zadań zarządzania zasób, które zostały uruchomione przez SQL Server. Przykłady SQL Server zadania są MONITOR zasób (jeden węzeł NUMA), LENIWE WRITER (jeden węzeł NUMA), blokada MONITOR, punkt kontrolny i WRITER dziennik.

  • 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.Aby uzyskać więcej informacji zobaczOpis dostępu do pamięci inne niż jednolite.

  • Z runnable_tasks_count zwracanie 0, są nie aktywnie uruchomionych zadań. Jednak mogą istnieć aktywnych sesji.

  • Harmonogram 255 ma reprezentujących DAC 3 pracowników skojarzonych z nią. Te pracownikom są przydzielane na SQL Server uruchamiania i nie ulegają zmianie. Tych pracowników są używane do przetwarzania tylko kwerend DAC.Dwa zadania na ten harmonogram reprezentują menedżer połączeń i bezczynności pracownika.

  • active_workers_count Reprezentuje wszystkich pracowników, które są skojarzone z zadaniami i są uruchomione w trybie innym niż preemptive.Niektóre zadania, takie jak odbiorników sieci uruchamiane preemptive planowania.

  • Ukryte pracownikom nie przetwarzają żądań typowego użytkownika.Harmonogram DAC jest ten wyjątek.Ten harmonogram DAC ma jeden wątek na przetwarzanie żądań.

B.Monitorowanie nonhidden pracownikom w systemie zajęty

Następująca kwerenda pokazuje stan silnie załadowanego nonhidden pracownikom, wówczas, gdy istnieją większej liczby żądań, nie mogą być obsługiwane przez pracowników dostępne.W tym przykładzie 256 pracowników są przydzielone zadania.Niektóre zadania czeka na przypisanie do pracownika.Niższa liczba runnable oznacza oczekujące wielu zadań dla zasób.

Uwaga

Za pomocą kwerend wysyłanych można znaleźć stanu pracowników sys.dm_os_workers.Aby uzyskać więcej informacji zobaczsys.dm_os_workers (Transact-SQL).

Oto kwerendy:

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

Przez porównanie następujący wynik zawiera wiele zadań runnable w przypadku gdy nie zadanie oczekuje na uzyskać pracownik.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