Устранение неполадок в 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 и возвращает полезную информацию в категоризированной форме. Однако ее следует использовать в сочетании с другими методами и инструментами, чтобы обеспечить всеобъемлющий подход к устранению неполадок.