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

Widok sys.dm_os_performance_counters

Termin Definicja
Widok sys.dm_os_performance_counters

sys.dm_os_performance_counters udostępnia liczniki wydajności SQL Server dostępne też przez Windows Performance Monitor.

Rola widoku sys.dm_os_performance_counters w SQL Server

sys.dm_os_performance_counters jest dynamicznym widokiem zarządzania SQL Server, który udostępnia wartości liczników wydajności silnika bazy danych. Liczniki te są powiązane z mechanizmem SQL Server Performance Monitor i mogą opisywać między innymi aktywność instancji, wykorzystanie pamięci, pracę procesów roboczych, blokowanie, kompilowanie zapytań, buforowanie stron oraz operacje wejścia i wyjścia. Widok nie przedstawia jednej ustandaryzowanej tabeli metryk aplikacyjnych. Jego zawartość zależy od zainstalowanych składników i funkcji używanej instancji SQL Server.

Najważniejsze kolumny widoku to object_name, counter_name, instance_name, cntr_value oraz cntr_type. object_name określa obszar monitorowania, na przykład SQLServer:Buffer Manager, a counter_name identyfikuje konkretny licznik. instance_name rozróżnia instancje podrzędne licznika, gdy dana metryka występuje dla wielu baz danych, plików lub innych elementów. cntr_value zawiera bieżącą wartość, natomiast cntr_type informuje, jak należy ją interpretować.

Odczyt kolumn i typów liczników

Wartość cntr_value nie zawsze jest gotowym procentem, średnią albo liczbą zdarzeń występujących w danej chwili. Część liczników ma charakter narastający. W takim przypadku pojedynczy odczyt pokazuje stan sumaryczny od uruchomienia instancji, resetu statystyk albo rozpoczęcia odpowiedniego okresu pomiarowego. Aby obliczyć tempo występowania zdarzeń, należy wykonać co najmniej dwa odczyty w znanym odstępie czasu, odjąć pierwszą wartość od drugiej i podzielić wynik przez czas pomiaru.

Niektóre liczniki są licznikami surowymi, inne wymagają użycia wartości bazowej, a jeszcze inne reprezentują wartość chwilową. Informację pomocną przy takim rozróżnieniu zawiera cntr_type, którego znaczenie wynika z definicji liczników wydajności Windows używanych przez SQL Server. Dlatego nie powinno się automatycznie traktować każdej wartości jako procentu. Przykładowo licznik dotyczący współczynnika trafień w pamięci podręcznej może wymagać zestawienia wartości głównej z licznikiem bazowym, a licznik transakcji może wymagać obliczenia różnicy między kolejnymi próbkami.

Zapytania diagnostyczne i porównywanie próbek

Podstawowy przegląd dostępnych liczników można wykonać zapytaniem: SELECT object_name, counter_name, instance_name, cntr_value, cntr_type FROM sys.dm_os_performance_counters ORDER BY object_name, counter_name, instance_name;. W praktyce lepiej zawęzić wynik do określonego obiektu lub nazwy licznika, ponieważ widok może zwrócić dużą liczbę wierszy. Filtrowanie po object_name i counter_name ułatwia odróżnienie interesującej metryki od liczników dotyczących innych obszarów pracy silnika.

Analiza wydajności powinna opierać się na serii pomiarów, a nie na pojedynczym wyniku. Przykładowy monitoring może zapisać pierwszą próbkę, odczekać ustalony czas, a następnie odczytać ten sam licznik ponownie. Dla licznika narastającego oblicza się przyrost wartości, natomiast dla licznika chwilowego analizuje się bezpośredni stan w kolejnych momentach. Trzeba również zachować nazwę obiektu i instancji, ponieważ identyczna nazwa licznika może występować w kilku kontekstach. Bez tego łatwo połączyć wartości pochodzące z różnych baz danych albo różnych typów zasobów.

Granice interpretacji wyników w praktyce

Sam widok nie wyjaśnia przyczyny problemu z wydajnością. Wysoka wartość konkretnego licznika może być skutkiem normalnego obciążenia, ale może też wskazywać na presję pamięci, niewystarczające zasoby procesora, intensywne operacje dyskowe, częste kompilacje albo nieefektywne zapytania. Interpretacja wymaga zestawienia danych z czasem pomiaru, obciążeniem instancji, aktywnymi sesjami, oczekiwaniami zasobów oraz informacjami o zapytaniach. Należy też uwzględnić restart SQL Server, ponieważ część liczników zostaje wtedy wyzerowana lub rozpoczyna nowy okres zliczania.

Widok jest przeznaczony dla diagnostyki konkretnej instancji SQL Server i wymaga odpowiednich uprawnień do odczytu dynamicznych widoków zarządzania. Brak uprawnień może ograniczyć możliwość wykonania zapytania albo zakres zwracanych danych, zależnie od wersji i konfiguracji silnika. Wyników nie należy utożsamiać bezpośrednio z całościowym monitoringiem systemu Windows: SQL Server udostępnia własne liczniki, lecz pełna ocena problemu może wymagać także analizy procesora, pamięci operacyjnej, podsystemu dyskowego i sieci. W zastosowaniach serwerowych interpretację powinien prowadzić administrator znający konkretną wersję SQL Server, konfigurację instancji i charakter obciążenia.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę