-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdm_os_performance_counters.sql
More file actions
49 lines (43 loc) · 2.65 KB
/
Copy pathdm_os_performance_counters.sql
File metadata and controls
49 lines (43 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
SELECT
RTRIM(object_name) AS [object_name],
RTRIM(counter_name) AS [counter_name],
CASE cntr_type
WHEN 65792 THEN 'PERF_COUNTER_RAWCOUNT' -- Простое целочисленное значение
WHEN 537003264 THEN 'PERF_COUNTER_LARGE_RAWCOUNT' -- 64-битное целочисленное значение
WHEN 272696320 THEN 'PERF_COUNTER_BULK_COUNT' -- Количество событий в секунду
WHEN 272696576 THEN 'PERF_AVERAGE_BULK' -- Среднее значение на операцию
WHEN 1073874176 THEN 'PERF_COUNTER_COUNTER' -- Частота событий в секунду
WHEN 1073939712 THEN 'PERF_100NSEC_TIMER' -- Время выполнения в 100-наносекундных интервалах
ELSE 'Unknown type: ' + CAST(cntr_type AS VARCHAR) -- Неизвестный тип
END AS cntr_type_desc,
RTRIM(instance_name) AS [instance_name],
cntr_value AS counter_value
FROM
sys.dm_os_performance_counters;
/*
Типы счётчиков в sys.dm_os_performance_counters:
65792 (0x00010100) - PERF_COUNTER_RAWCOUNT
Простое целочисленное значение (сырой счётчик)
Хранит текущее значение без расчётов
Пример: количество активных соединений
537003264 (0x20020400) - PERF_COUNTER_LARGE_RAWCOUNT
Аналог RAWCOUNT, но поддерживает 64-битные значения
Используется для больших чисел (например, общее количество запросов)
272696320 (0x10410500) - PERF_COUNTER_BULK_COUNT
Счётчик, измеряющий количество событий в секунду
Использует два замера для расчёта разницы во времени
Пример: "Transactions/sec"
272696576 (0x10410700) - PERF_AVERAGE_BULK
Среднее значение на операцию
Пример: "Average Latch Wait Time (ms)"
Формула: TotalValue / TotalOperations
1073874176 (0x40000200) - PERF_COUNTER_COUNTER
Показывает количество событий в секунду
Измеряет частоту событий (например, "Deadlocks/sec")
Использует два замера для вычисления разницы во времени
1073939712 (0x40010500) - PERF_100NSEC_TIMER
Счётчик времени выполнения в 100-наносекундных интервалах
Показывает, какую долю времени процесс занят
Пример: "Процент времени CPU"
Формула: (CurrentValue - PreviousValue) / (CurrentTime100ns - PreviousTime100ns) * 100
*/