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 или Системы платформы аналитики (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)