sys.dm_os_schedulers (języka Transact-SQL)

Zwraca jeden wiersz na harmonogram w SQL Server gdzie każdy harmonogram jest mapowany do poszczególnych procesorów.Użyj tego widoku, monitorować stan harmonogram lub zidentyfikować przemijające zadania.

Nazwa kolumny

Typ danych

Opis

scheduler_address

varbinary(8)

Adres pamięci harmonogramu.Nie jest nullable.

parent_node_id

int

Identyfikator węzła, której harmonogram, znane również jako węzeł nadrzędny.Reprezentuje węzeł niejednorodnej pamięci dostępu (NUMA).Nie jest nullable.

scheduler_id

int

Identyfikator harmonogramu.Wszystkie pracownikom, które służą do uruchamiania kwerend regularne mają numery identyfikacyjne, mniej niż 1 048 576.Te pracownikom, których identyfikatory większy lub równy 1 048 576 są używane wewnętrznie przez SQL Server, takich jak harmonogram połączeń dedykowanych administratora.Nie jest nullable.

cpu_id

smallint

Identyfikator Procesora przypisany do harmonogramu.

Nie jest nullable.

UwagaUwaga:
255 oznacza brak koligacji, jak SQL Server 2005.Zobacz sys.dm_os_threads (języka Transact-SQL) dla koligacji dodatkowych informacji.

status

nvarchar(60)

Wskazuje stan harmonogramu.Może to być jedna z następujących wartości:

  • UKRYTE W TRYBIE ONLINE

  • UKRYTE W TRYBIE OFFLINE

  • WIDOCZNY ONLINE

  • WIDOCZNE W TRYBIE OFFLINE

  • WIDOCZNY ONLINE (DAC)

  • HOT_ADDED

Nie jest nullable.

Pracownikom UKRYTE są używane do przetwarzania żądań, które są wewnętrzne Aparat baz danych.Pracownikom WIDOCZNE są używane do przetwarzania żądań użytkownika.

Mapa OFFLINE pracownikom przetwórcom, które są w trybie offline maski koligacji i w związku z tym, nie są używane do przetwarzania żądań.Pracownikom ONLINE mapować procesorów, które są w trybie online w maski koligacji i są dostępne do przetwarzania wątków.

DAC wskazuje, że harmonogram jest uruchomiona w ramach połączenia dedykowane administratora.

DODAJE HOT wskazuje pracownikom zostały dodane w odpowiedzi na gorąco, dodać Procesora zdarzenie.

is_online

bit

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

Nie jest nullable.

is_idle

bit

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

preemptive_switches_count

int

Liczbę pracowników na ten harmonogram użytkownik przełączył tryb cenią sobie wcześniejsze.

Aby wykonać kod, który znajduje się poza SQL Server (na przykład rozszerzonych procedur przechowywanych i kwerendami rozproszonymi), wątek ma wykonać poza kontrolą - cenią sobie wcześniejsze harmonogram.Aby to zrobić, pracownik Przełącza tryb cenią sobie wcześniejsze.

context_switches_count

int

Liczba przełączeń kontekstu, które wystąpiły w tym harmonogram.Nie jest nullable.

Aby zezwolić na innych pracowników do uruchomienia, bieżącego pracownika uruchomione ma zrzeka się sterowania harmonogramu lub przełączyć kontekst.

UwagaUwaga:
Jeśli pracownik daje harmonogramu i umieszcza się w kolejce możliwe do uruchomienia i znajdzie innych pracowników, pracownik wybierze sama.W tym przypadek context_switches_count nie zostanie zaktualizowana, ale yield_count jest aktualizowany.

idle_switches_count

int

Liczba przez harmonogram zadań został oczekiwania na zdarzenie podczas bezczynności.W tej kolumna jest podobny do context_switches_count.Nie jest nullable.

current_tasks_count

int

Liczba bieżących zadań, które są skojarzone z tym harmonogram.Liczba ta obejmuje:

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

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

Po zakończeniu zadania, liczba ta jest zmniejszana.Nie jest nullable.

runnable_tasks_count

int

Liczba pracowników z powierzonych im zadań oczekujących na zaplanowane na możliwe do uruchomienia kolejki.Nie jest nullable.

current_workers_count

int

Liczba pracowników, które są skojarzone z tym harmonogram.Ten licznik obejmuje pracowników, które nie są przypisane zadanie.Nie jest nullable.

active_workers_count

int

Liczba pracowników, które są aktywne.Pracownika aktywnego nigdy nie jest cenią sobie wcześniejsze, musi mieć skojarzonego zadania i jest albo uruchamianie, możliwe do uruchomienia lub zawieszone.Nie jest nullable.

work_queue_count

bigint

Numer zadania w kolejce oczekujących.Zadania te oczekują na pracownika do ich pobrania.Nie jest nullable.

pending_disk_io_count

int

Liczba oczekujących operacji We/Wy, które oczekuje na zakończenie.Każdy harmonogram zawiera listę oczekujących operacji We/Wy, które są sprawdzane w celu ustalenia, czy zostały one ukończone za każdym czas jest przełączanie kontekstu.Licznik jest zwiększany po wstawieniu żądania.Ten licznik jest zmniejszana po wykonaniu wniosku.Numer ten nie wskazuje stan operacji We/Wy.Nie jest nullable.

load_factor

int

Wewnętrzna wartość, która wskazuje dostrzeżonego obciążenie tego harmonogramu.Ta wartość jest używana do określenia, czy nowe zadanie należy umieścić na ten harmonogram lub innego harmonogramu.Wartość ta jest przydatna do debugowania, gdy pojawi się pracownikom nie są równomiernie załadowany.W SQL Server 2000, zadanie jest kierowany do określonego harmonogramu.Jednakże w SQL Server, decyzje dotyczące routingu jest dokonana w zależności od obciążenia na harmonogram.SQL ServerAby pomóc w określeniu najlepszym miejscem do nabywania środków używa również współczynnik obciążenia węzłów i pracownikom.Zadanie jest został umieszczony w kolejce, zwiększa współczynnik obciążenia.Po zakończeniu zadania zmniejsza się współczynnik obciążenia.Przy użyciu obciążenia czynniki pomaga SQL Server OS saldo lepiej obciążenia roboczego.Nie jest nullable.

yield_count

int

Wewnętrzna wartość jest używana do określenia postępu na ten harmonogram.Ta wartość jest używana przez Monitor harmonogram do ustalenia, czy pracownika przez harmonogram zadań nie jest oddawanie innych pracowników na czas.Ta wartość nie wskazuje, że pracownik lub zadania są przenoszone do nowego pracownika.Nie jest nullable.

last_timer_activity

bigint

Znaczniki w CPU, ostatniego czas , że harmonogram kolejki czasomierza została już sprawdzona przez harmonogram.Nie jest nullable.

failed_to_create_worker

bit

Wartość 1, jeśli nie można utworzyć nowego pracownika na ten harmonogram.Ten problem występuje zazwyczaj z powodu ograniczeń pamięci.Jest nullable.

active_worker_address

varbinary(8)

Adres pamięci pracownika, który jest aktualnie aktywne.Jest nullable.Aby uzyskać więcej informacji, zobacz sys.dm_os_workers (języka Transact-SQL).

memory_object_address

varbinary(8)

Adres pamięci harmonogram obiektu pamięci.NIEDOPUSZCZAJĄCE.

task_memory_object_address

varbinary(8)

Adres pamięci obiektu pamięci zadania.Nie jest nullable.Aby uzyskać więcej informacji, zobacz sys.dm_os_memory_objects (języka Transact-SQL).

quantum_length_us

bigint

Określone tylko w celach informacyjnych. Nieobsługiwane. Przyszła zgodność nie jest gwarantowana.Opisuje harmonogram kwant używane przez SQLOS.

Uprawnienia

Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.

Przykłady

A.Monitorowanie ukrytych i nieukrytych pracownikom

Następująca kwerenda wyświetla stan pracowników i zadań w SQL Server przez wszystkie pracownikom.Ta kwerenda zostało wykonane na komputerze, który ma następujące:

  • Dwóch procesorów (CPU)

  • Dwa węzły (NUMA)

  • Jeden Procesor, każdy węzeł NUMA

  • Maski koligacji zestaw na 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;

Oto zestaw wyników.

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 zawiera następujące informacje:

  • Istnieje pięć harmonogramów.Dwa pracownikom mają wartość Identyfikatora < 1 048 576.Pracownikom o identyfikatorze >= 1048576are, znany jako ukryty pracownikom.Harmonogram 255 reprezentuje dedykowanego połączenia administracyjnego (DAC).Istnieje jeden harmonogram DAC na wystąpienie.Monitory zasobów, które koordynuje presji pamięci za pomocą harmonogramu 257 i harmonogram 258, jeden na węzeł NUMA

  • Dane wyjściowe są 23 zadania aktywne.Zadania te obejmują żądania użytkownika oprócz zasób zadań związanych z zarządzaniem uruchamianych przez SQL Server.Przykłady SQL Server zadań są MONITOR zasobów (jeden na węzeł NUMA), OPÓŹNIENIEM (jeden na węzeł NUMA), MONITOR blokady, punktu kontrolnego i modułu ZAPISUJĄCEGO dziennika.

  • węzeł NUMA 0 jest mapowany do procesora CPU 1 i węzeł NUMA 1 jest mapowany do procesora CPU 0.SQL Serverzazwyczaj rozpoczyna się w węzeł NUMA innych niż węzeł 0.Aby uzyskać więcej informacji, zobacz Opis niejednolity dostęp do pamięci.

  • Z runnable_tasks_count Zwracanie 0, są aktywnie nie uruchomione zadania.Jednak mogą istnieć aktywnych sesji.

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

  • active_workers_count reprezentuje wszystkich pracowników, które zostało skojarzone z zadaniami i są uruchomione w trybie cenią sobie wcześniejsze.Niektóre zadania, takie jak sieć detektory uruchamiana cenią sobie wcześniejsze planowanie.

  • Ukryte pracownikom nie przetwarzają żądań typowy użytkownik.Harmonogram DAC jest wyjątkiem.Ten harmonogram DAC ma jeden wątek na przetwarzanie żądań.

B.Monitorowanie pośrednią pracownikom w systemie zajęty

Następująca kwerenda pokazuje stan obciążonego pracownikom pośrednią, gdzie istnieją więcej żą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 możliwe do uruchomienia oznacza czeka wiele zadań dla zasób.

Ostrzeżenie

Wykonywanie kwerend można znaleźć stanu pracowników sys.dm_os_workers.Aby uzyskać więcej informacji, zobacz sys.dm_os_workers (języka 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;

Oto zestaw wyników.

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 możliwe do uruchomienia zadania w przypadku gdy nie zadanie oczekuje uzyskać pracownik.work_queue_count Jest 0 dla obu pracownikom.

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