sys.dm_os_performance_counters (Transact-SQL)

Применимо к: SQL Server (все поддерживаемые версии) Azure SQL database Управляемый экземпляр 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.

Имя столбца Тип данных Описание
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)

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

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)