Понимание того, как SQL Server работает на макроуровне, является важным для выявления и устранения проблем с производительностью. Один из способов захватить эту информацию – использовать Монитор производительности, либо по мере необходимости, либо настроить журнал для захвата значений на предопределенной основе. Однако, в более новых версиях SQL Server, традиционный метод захвата счетчиков монитора производительности с использованием таблицы dbo.sysperfinfo больше не доступен.
Итак, как мы можем захватить значения Монитора производительности по мере необходимости для SQL Server? Решение заключается в одном из объектов динамического управления, называемом sys.dm_os_performance_counters. Этот DMV позволяет нам выполнять запросы к представлению напрямую для захвата счетчиков SQL Server, связанных с экземпляром, что дает администраторам баз данных гибкость захватывать метрики в режиме реального времени при возникновении проблем.
Использование sys.dm_os_performance_counters так же просто, как выполнение оператора SELECT для получения метрик производительности SQL Server. Результирующий набор этого запроса будет состоять из пяти столбцов и более 500 счетчиков, которые могут варьироваться в зависимости от установленных приложений и служб на экземпляре SQL Server.
Объяснение столбцов:
- object_name: Категория счетчика, такая как MSSQL + $ + ИмяЭкземпляра: + БазыДанных (если у вас есть экземпляр)
- counter_name: Имя счетчика относительно категории
- instance_name: Экземпляр счетчика, либо значение базы данных, либо NULL для всего SQL Server
- cntr_value: Захваченное или рассчитанное значение счетчика
- cntr_type: Тип счетчика, определенный Монитором производительности
Счетчики, доступные через sys.dm_os_performance_counters, охватывают широкий спектр метрик, включая использование памяти, специфические для приложения SQL Server счетчики и многое другое. Некоторые примеры этих счетчиков включают MSSQL:CLR, MSSQL:Методы доступа, MSSQL:Установленные пользователем, MSSQL:Менеджер буфера и MSSQL:Статистика ожидания.
Важно отметить, что sys.dm_os_performance_counters ограничен только счетчиками SQL Server. Если вам нужно захватить системные, физические дисковые, сетевые интерфейсные карты или другие счетчики, вам все равно потребуется использовать Монитор производительности.
Используя sys.dm_os_performance_counters, администраторы баз данных могут легко захватывать и анализировать метрики производительности SQL Server в режиме реального времени, что позволяет быстрее выявлять и устранять проблемы с производительностью. Этот мощный инструмент предоставляет ценную информацию о том, как SQL Server использует ресурсы и помогает оптимизировать его общую производительность.