sys.dm_os_performance_counters (Transact-SQL)

Область применения:yesSQL Server (все поддерживаемые версии) YesБаза данных SQL Azure YesУправляемый экземпляр SQL Azure yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

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

Примечание

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

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

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

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

Remarks

Если экземпляр установки 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 уровня "Базовый", S0 и S1, а также для баз данных в эластичных пулах необходимо иметь учетную запись администратора сервера, администратора Azure Active Directory или членство ##MS_ServerStateReader##в роли сервера. Для всех остальных целей обслуживания базы данных SQL требуется разрешение VIEW DATABASE STATE в базе данных или членство в роли сервера ##MS_ServerStateReader##.

Примеры

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

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)