sys.dm_os_performance_counters (Transact-SQL)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform 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)