Встречали ли вы когда-нибудь ситуацию, когда счетчики производительности в dm_os_performance_counters или perfmon в SQL Server исчезли? Эта проблема может быть довольно раздражающей, особенно когда вы полагаетесь на эти счетчики для мониторинга и устранения неполадок. В этой статье мы рассмотрим, как их восстановить и убедиться, что ваш экземпляр SQL Server настроен правильно.
Важно отметить, что эта проблема может возникать не только при новой установке SQL Server в Azure VM, но и в других старых средах. Так что, независимо от вашей конфигурации, предоставленное решение должно помочь вам решить проблему отсутствия счетчиков производительности.
При запросе представления dm_os_performance_counters вы можете заметить, что возвращается только небольшой набор всех счетчиков производительности. Например, в SQL Server 2014 RTM в этом представлении должно быть 1335 строк, но вы можете увидеть значительно меньше строк. Это может вызвать беспокойство, так как вы можете упустить важные показатели производительности.
Давайте рассмотрим реальный пример. В новой Azure VM, работающей на SQL Server, в частности, в группе ресурсов Availability Group SQL 2014, в представлении dm_os_performance_counters было возвращено только 51 строка. Эти строки были связаны с серией объектов XTP, таких как XTP Transaction Log и XTP Cursors. Эта проблема была неожиданной, так как Azure VM была легко развернута из нового портала Azure.
К счастью, существует простое решение этой проблемы. С помощью пары команд PowerShell вы можете повторно зарегистрировать имена счетчиков производительности и текст объяснения для службы SQL Server в реестре Windows. Вот как вы можете это сделать:
# Замените 'MSSQLSERVER' на имя вашего экземпляра SQL Server
unlodctr MSSQLSERVER
# Замените путь ниже на путь для вашего экземпляра SQL Server
lodctr "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\perf-MSSQLSERVERsqlctr.ini"
После выполнения этих команд вам потребуется перезапустить затронутую службу, в данном случае – службу SQL Server. Это обеспечит вступление в силу изменений и восстановление отсутствующих счетчиков производительности.
Стоит отметить, что эти команды можно изменить для работы с конкретными экземплярами SQL Server. Просто замените ‘MSSQLSERVER’ на соответствующее имя экземпляра в обеих командах.
Следуя этим шагам, вы должны суметь решить проблему отсутствия счетчиков производительности в SQL Server. Важно регулярно мониторить эти счетчики, чтобы обеспечить оптимальную производительность и выявить возможные узкие места или проблемы.
Мы надеемся, что эта статья была полезной для решения этой распространенной проблемы. Если у вас возникнут дополнительные вопросы или вам потребуется помощь, не стесняйтесь обращаться к нам.