Published on

January 11, 2017

Использование sys.sp_server_diagnostics в SQL Server для устранения неполадок

Устранение неполадок в SQL Server может быть сложной задачей, требующей сбора правильных доказательств и анализа различных методов. Одна из часто пренебрегаемых опций – использование системной хранимой процедуры под названием sys.sp_server_diagnostics, введенной в SQL Server 2012. Эта хранимая процедура предоставляет быструю оценку экземпляра SQL путем захвата и возврата информации о состоянии и событиях, удобно категоризированной для нас.

Для выполнения хранимой процедуры просто выполните следующую команду T-SQL:

EXEC sp_server_diagnostics

По умолчанию процесс захвата длится пять секунд, прежде чем результаты возвращаются в сетку результатов. Результаты категоризируются по разным областям:

  • Система: Возвращает системные данные о таких элементах, как спинлоки, предупреждения о захвате, ошибки страниц, использование ЦП и другие условия производительности.
  • Ресурс: Фокусируется на объектах, связанных с памятью, включая доступную физическую и виртуальную память, информацию о свободных страницах и флаги низкой памяти.
  • Обработка запросов: Возвращает накопленную статистику ожидания, включая верхние предварительные и непредварительные ожидания, упорядоченные по количеству и длительности ожидания.
  • Подсистема ввода-вывода: Возвращает информацию об операциях ввода-вывода, такую как тайм-ауты, связанные с вводом-выводом, и ожидающие запросы ввода-вывода.
  • События: Возвращает полную информацию о событиях, полученную во время выполнения.

Хранимую процедуру также можно выполнить в повторяющемся режиме, где можно передать интервал времени, и выполнение будет повторяться непрерывно до отмены, с выводом в панель результатов на каждом интервале.

Используя столбцы state и state_desc в выводе, мы можем быстро увидеть, обнаружила ли процедура какие-либо потенциальные ошибки в любой из категорий, требующие дальнейшего исследования. Возможные значения для state:

  • 0: Неизвестно
  • 1: Чисто
  • 2: Предупреждение
  • 3: Ошибка

Следует отметить, что категория событий имеет значение состояния по умолчанию 0.

Однако стоит отметить, что при использовании этого метода хранимую процедуру нельзя выполнить в повторяющемся режиме.

Преимущество использования типа данных XML заключается в том, что мы можем просматривать данные намного проще в Management Studio. Анализируя результаты, полученные из тестового экземпляра, мы быстро можем получить представление о состоянии экземпляра SQL Server. Например, мы можем увидеть использование ЦП, выделение памяти и информацию о обработке запросов.

Хотя sys.sp_server_diagnostics быстро предоставляет полезную информацию, у нее есть ограничения. В областях, таких как ввод-вывод, она может не предоставлять достаточно подробной информации, а статистика ожидания не позволяет отфильтровывать безвредные ожидания. В таких случаях альтернативные варианты, такие как запросы DMV, могут быть более подходящими.

В заключение, sys.sp_server_diagnostics является практическим дополнением к набору инструментов для устранения неполадок в SQL Server. Она предоставляет быструю оценку экземпляра SQL и возвращает полезную информацию в категоризированной форме. Однако ее следует использовать в сочетании с другими методами и инструментами, чтобы обеспечить всеобъемлющий подход к устранению неполадок.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.