„Performance counters”, które są elementem SQL Server wykorzystujemy jako narzędzia do monitorowania różnych aspektów kondycji instancji. Jest on dostępny jako dynamiczny widok zarządzania (DMV) w SQL Server, a mianowicie sys.dm_os_ Performance_counters .

Dane uzyskiwane z tego widoku mają postać surową, którą dopiero należy odpowiednio zinterpretować, zanim będzie można je zastosować. Wartość kolumny cntr_type wskazuje, w jaki sposób należy interpretować wartości.

Typ każdego licznika jest wskazany w kolumnie cntr_type jako wartość dziesiętna. Poniżej przedstawiono różne wartości używane we wszystkich wersjach między SQL Server.

Dokumentacja sys.dm_os_ Performance_counters (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms187743%28v=sql.110%29.aspx

Poniższy skrypt zwraca wartości licznika

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters;

Opis struktury widoku

Column nameData typeDescription
object_namenchar(128)Kategoria, do której należy ten licznik
counter_namenchar(128)Nazwa licznika.
instance_namenchar(128)Nazwa konkretnej instancji licznika. Często zawiera nazwę bazy danych.
cntr_valuebigintAktualna wartość licznika.
W przypadku liczników sekundowych wartość ta ma charakter kumulacyjny. Wartość współczynnika należy obliczyć poprzez próbkowanie wartości w dyskretnych odstępach czasu. Różnica pomiędzy dowolnymi dwiema kolejnymi wartościami próbek jest równa szybkości stosowanego przedziału czasu.
cntr_typeintTyp licznika zdefiniowany przez architekturę wydajności systemu Windows.

Poniżej przedstawione są wartości występujące w kolumnie cntr_type :

1) PERF_LARGE_RAW_BASE

  • Wartość dziesiętna: 1073939712
  • Wartość szesnastkowa: 0x40030500

Ta wartość licznika to surowe dane używane jako mianownik licznika przedstawiającego chwilowy ułamek arytmetyczny.

2) PERF_LARGE_RAW_FRACTION

  • Wartość dziesiętna: 537003264
  • Wartość szesnastkowa: 0x20020500

Ta wartość licznika reprezentuje wartość ułamkową jako stosunek do odpowiadającej jej wartości licznika PERF_LARGE_RAW_BASE

3) PERF_AVERAGE_BULK

  • Wartość dziesiętna: 1073874176
  • Wartość szesnastkowa: 0x40020500

Ta wartość licznika reprezentuje średnią metrykę. Wartość cntr_value ma charakter kumulacyjny. Wykorzystywana jest wartość bazowa typu PERF_LARGE_RAW_BASE, która również ma charakter kumulacyjny. Wartość uzyskuje się poprzez pobranie najpierw dwóch próbek o wartościach A1 i A2 PERF_AVERAGE_BULK oraz wartościach B1 i B2 PERF_LARGE_RAW_BASE. Obliczana jest różnica między A1 i A2 oraz B1 i B2. Wartość końcową oblicza się następnie jako stosunek różnic.

4) PERF_COUNTER_BULK_COUNT

  • Wartość dziesiętna: 272696576
  • Wartość szesnastkowa: 0x10410500

Ta wartość licznika reprezentuje metrykę szybkości. Wartość cntr_value ma charakter kumulacyjny. Wartość uzyskuje się poprzez pobranie dwóch próbek o wartości PERF_COUNTER_BULK_COUNT. Różnica między wartościami próbek jest dzielona przez odstęp czasu między próbkami w sekundach.

5) PERF_COUNTER_LARGE_RAWCOUNT

  • Wartość dziesiętna: 65792
  • Wartość szesnastkowa: 0x00010100

Ta wartość licznika pokazuje bezpośrednio ostatnią zaobserwowaną wartość. Używany głównie do śledzenia liczby obiektów.


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl