„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 name | Data type | Description |
---|---|---|
object_name | nchar(128) | Kategoria, do której należy ten licznik |
counter_name | nchar(128) | Nazwa licznika. |
instance_name | nchar(128) | Nazwa konkretnej instancji licznika. Często zawiera nazwę bazy danych. |
cntr_value | bigint | Aktualna 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_type | int | Typ 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.