sys.dm_os_performance_counters (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

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

Примечание

Чтобы вызвать это из 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 Server.
pdw_node_id int Применимо к: Azure Synapse Analytics , Система платформы аналитики (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 Basic, S0 и S1 , а также для баз данных в эластичных пулах требуется учетная запись администратора сервера или учетная запись администратора Azure Active Directory . Для всех остальных целей службы базы данных SQL VIEW DATABASE 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)