Поделиться через


sys.dm_os_performance_counters (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Возвращает по строке на каждый счетчик производительности, хранимый на сервере. Сведения о каждом счетчике производительности см. в разделе "Использование объектов SQL Server".

Примечание.

Чтобы вызвать это из Azure Synapse Analytics или Analytics Platform System (PDW), используйте имя sys.dm_pdw_nodes_os_performance_counters. Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Имя столбца Тип данных Description
object_name nchar(128) Категория, к которой принадлежит счетчик.
counter_name nchar(128) Имя счетчика. Чтобы получить дополнительные сведения о счетчике, это имя раздела, выбранного из списка счетчиков в разделе "Использование объектов SQL Server".
instance_name nchar(128) Имя заданного экземпляра счетчика. Обычно содержит имя базы данных.
cntr_value bigint Текущее значение счетчика.

Примечание. Для счетчиков в секунду это значение является накопительным. Значение частоты должно быть вычислено выборкой значений в дискретные интервалы времени. Разность между двумя последовательными значениям выборки равна частоте используемого интервала времени.
cntr_type int Тип счетчика, как определено архитектурой производительности Windows. Дополнительные сведения о типах счетчиков производительности см. в документации по WMI или документации по Windows Server.
pdw_node_id int Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)

Идентификатор узла, на который находится данное распределение.

Замечания

Если экземпляр установки SQL Server не отображает счетчики производительности операционной системы Windows, используйте следующий запрос Transact-SQL, чтобы убедиться, что счетчики производительности отключены.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

Если возвращено 0 строк, значит, счетчики производительности отключены. Затем необходимо просмотреть журнал установки и найти ошибку 3409. Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. Это означает, что счетчики производительности не были включены. Ошибки, находящиеся непосредственно перед ошибкой 3409, должны указывать первопричину сбоя счетчиков производительности. Дополнительные сведения о файлах журнала установки см. в разделе "Просмотр и чтение файлов журнала установки SQL Server".

Счетчики производительности, в которых cntr_type значение столбца равно 65792, отображают моментальный снимок последнего наблюдаемого значения, а не среднее значение.

Счетчики производительности, в которых cntr_type значение столбца 272696320 или 272696576 отображает среднее количество операций, выполненных в течение каждой секунды интервала выборки. Счетчики этого типа измерения времени в тиках системных часов. Например, чтобы получить моментальный снимок, похожий на чтение последней секунды только для Buffer Manager:Lazy writes/sec счетчиков, Buffer Manager:Checkpoint pages/sec необходимо сравнить разность между двумя точками сбора, которые являются одной секундой друг от друга.

Счетчики производительности, в которых cntr_type значение столбца 537003264 отображать отношение подмножества к его набору в процентах. Например, счетчик Buffer Manager:Buffer cache hit ratio сравнивает общее количество попаданий кэша и общее количество подстановок кэша. Таким образом, чтобы получить только чтение моментального снимка последней секунды, необходимо сравнить разность между текущим значением и базовым значением (знаменателем) между двумя точками сбора, которые являются одной секундой друг от друга. Соответствующее базовое значение — это счетчик Buffer Manager:Buffer cache hit ratio base производительности, в котором значение столбца cntr_type 1073939712.

Счетчики производительности, в которых cntr_type значение столбца 1073874176 отображать, сколько элементов обрабатывается в среднем, в зависимости от количества операций. Например, Locks:Average Wait Time (ms) счетчики сравнивают ожидание блокировки в секунду с запросами блокировки в секунду, чтобы отобразить среднее время ожидания (в миллисекундах) для каждого запроса блокировки, который привел к ожиданию. Таким образом, чтобы получить только чтение моментального снимка последней секунды, необходимо сравнить разность между текущим значением и базовым значением (знаменателем) между двумя точками сбора, которые являются одной секундой друг от друга. Соответствующее базовое значение — это счетчик Locks:Average Wait Time Base производительности, в котором значение столбца cntr_type 1073939712.

Данные в динамическом административном sys.dm_os_performance_counters представлении не сохраняются после перезапуска ядра СУБД. Узнать время последнего запуска ядра СУБД можно в столбце sqlserver_start_time из sys.dm_os_sys_info.

Разрешение

На SQL Server и управляемом экземпляре SQL необходимо разрешение VIEW SERVER STATE.

Для целей службы База данных SQL Basic, S0 и S1, а также для баз данных в эластичных пулах, учетной записи администратора сервера, учетной записи администратора Microsoft Entra или членства в ##MS_ServerStateReader## роли сервера требуется. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Разрешения для SQL Server 2022 и более поздних версий

Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.

Примеры

В следующем примере возвращаются все счетчики производительности, отображающие значения счетчика моментальных снимков.

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type  
FROM sys.dm_os_performance_counters
WHERE cntr_type = 65792 OR cntr_type = 272696320 OR cntr_type = 537003264;  

См. также

Динамические административные представления операционной системы SQL Server (Transact-SQL)
sys.sysperfinfo (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)