Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

SYS.DM_RESOURCE_GOVERNOR_WORKLOAD_GROUPS

Termin Definicja
SYS.DM_RESOURCE_GOVERNOR_WORKLOAD_GROUPS

sys.dm_resource_governor_workload_groups zwraca informacje o grupach obciążeń i przypisanych do nich pulach zasobów.

Rola widoku sys.dm_resource_governor_workload_groups w SQL Server

sys.dm_resource_governor_workload_groups jest dynamicznym widokiem zarządzania (DMV, Dynamic Management View) silnika Microsoft SQL Server. Zwraca informacje o grupach obciążeń skonfigurowanych w funkcji Resource Governor oraz o pulach zasobów, do których te grupy należą. Grupa obciążeń jest logicznym kontenerem dla sesji i żądań zaklasyfikowanych według reguł klasyfikatora. Nie opisuje pojedynczego użytkownika ani pojedynczego zapytania, lecz zbiorcze zachowanie przypisanych żądań.

Resource Governor służy do kontrolowania wykorzystania zasobów przez różne rodzaje pracy wykonywanej w tej samej instancji SQL Server. Pula zasobów określa dostępne limity lub proporcje zasobów, natomiast grupa obciążeń przechowuje ustawienia i statystyki dotyczące żądań korzystających z danej puli. DMV pozwala zatem powiązać konfigurację grupy z obserwowanym użyciem procesora, pamięci oraz współbieżności. Sam odczyt widoku nie zmienia konfiguracji i nie powoduje przeklasyfikowania aktywnych sesji.

Konfiguracja grupy i identyfikacja przypisanej puli

Wyniki widoku zawierają identyfikatory i nazwy grup obciążeń oraz informacje pozwalające ustalić, z którą pulą zasobów grupa jest związana. W praktyce szczególnie istotne jest rozróżnienie identyfikatora grupy, identyfikatora puli i identyfikatora grupy nadrzędnej, jeżeli dana konfiguracja wykorzystuje hierarchię grup. Nazwa grupy sama w sobie nie określa sposobu klasyfikowania sesji; do zrozumienia przepływu konieczne jest również sprawdzenie funkcji klasyfikatora Resource Governor i konfiguracji puli.

DMV udostępnia także parametry sterujące zachowaniem grupy, między innymi wartości dotyczące maksymalnej liczby żądań, wykorzystania procesora oraz czasu oczekiwania. Znaczenie konkretnej kolumny zależy od tego, czy opisuje limit konfiguracyjny, bieżącą wartość monitorowaną, czy statystykę skumulowaną od ostatniego wyzerowania. Dlatego wynik powinien być interpretowany razem z dokumentacją wersji SQL Server oraz z widokiem sys.resource_governor_workload_groups, który przedstawia konfigurację grup w katalogu systemowym.

Przy analizie konfiguracji trzeba uwzględnić stan funkcji Resource Governor. Zmiana konfiguracji może wymagać ponownego zastosowania konfiguracji, a niektóre wartości są oceniane dopiero podczas klasyfikowania nowych żądań. Odczyt DMV pokazuje stan widoczny dla silnika, ale nie zastępuje weryfikacji, czy klasyfikator faktycznie przypisuje ruch do oczekiwanej grupy. Błędna funkcja klasyfikatora może sprawić, że grupa wygląda poprawnie, lecz nie otrzymuje tego rodzaju pracy, dla którego została utworzona.

Statystyki wykorzystania zasobów i ich interpretacja

Jednym z głównych zastosowań DMV jest obserwacja statystyk grupy obciążeń. Mogą one obejmować między innymi czas procesora, czas oczekiwania, liczbę żądań, liczbę aktywnych żądań, wykorzystanie pamięci oraz informacje o oczekiwaniu na przydział zasobów. Wartości te należy traktować jako dane obserwacyjne dla całej grupy, a nie jako bezpośredni pomiar jednego zapytania. Wysoka wartość czasu procesora może wynikać z dużej liczby krótkich operacji albo z niewielkiej liczby kosztownych żądań.

Ważne są również statystyki związane z oczekiwaniem. Czas oczekiwania grupy może rosnąć, gdy żądania konkurują o procesor, pamięć, blokady albo inne zasoby. Ten widok nie wyjaśnia jednak samodzielnie przyczyny każdego oczekiwania. Do dalszej korelacji używa się odpowiednich DMV sesji i żądań, między innymi sys.dm_exec_requests, sys.dm_exec_sessions oraz widoków dostarczających informacje o oczekiwaniach. Dopiero zestawienie tych źródeł pozwala ocenić, czy ograniczenie wynika z Resource Governor, z blokowania, z planu wykonania czy z obciążenia całej instancji.

Statystyki grup Resource Governor mają charakter narastający i mogą zostać wyzerowane przez czynności administracyjne związane z konfiguracją lub resetem statystyk. Pojedynczy odczyt nie pokazuje więc tempa zmian. Do analizy trendu należy wykonywać kolejne pomiary w porównywalnych odstępach, zapisywać wartości początkowe i końcowe oraz obliczać różnice. Szczególną ostrożność trzeba zachować po restarcie instancji, zmianie konfiguracji albo ponownym zastosowaniu ustawień, ponieważ wtedy porównanie z wcześniejszym okresem może być niewiarygodne.

Zapytania kontrolne i wymagane uprawnienia

Podstawowe zapytanie diagnostyczne może ograniczyć wynik do najważniejszych kolumn, na przykład nazwy grupy, identyfikatora puli oraz wybranych liczników użycia procesora, pamięci i żądań. Celowe wskazanie kolumn jest bezpieczniejsze niż poleganie na SELECT *, ponieważ zakres i nazwy kolumn DMV mogą różnić się między wersjami SQL Server. Przy porównywaniu grup warto sortować wynik według czasu procesora, liczby aktywnych żądań albo czasu oczekiwania, zależnie od badanego problemu.

Odczyt dynamicznych widoków zarządzania wymaga odpowiednich uprawnień. W starszych wersjach SQL Server dostęp do wielu informacji serwerowych wymaga uprawnienia VIEW SERVER STATE. W SQL Server 2022 część DMV może wymagać uprawnienia VIEW SERVER PERFORMANCE STATE. Dokładne wymaganie należy sprawdzić dla używanej wersji i edycji silnika, ponieważ brak uprawnień może skutkować błędem dostępu albo ograniczonym zakresem informacji. Nadawanie uprawnień powinno być zgodne z zasadami administracji konkretnej instancji.

Wynik DMV warto zestawić z sys.dm_resource_governor_resource_pools, aby sprawdzić stan odpowiadającej puli zasobów, oraz z katalogowymi widokami Resource Governor, aby odróżnić ustawienia od bieżących statystyk. Jeżeli grupa ma nieoczekiwanie mało ruchu, należy przeanalizować klasyfikator, kontekst logowania, nazwę aplikacji i właściwości połączenia wykorzystywane przez regułę klasyfikującą. Jeżeli natomiast grupa jest przeciążona, sama zmiana limitu nie musi rozwiązać problemu: przyczyną może być nieefektywne zapytanie, nadmierna współbieżność lub nieprawidłowy podział obciążeń.