Как запустить монитор активности Sql

Обновлено: 05.07.2024

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

Что такое монитор активности SQL Server?

Монитор активности SQL Server — это функция в SQL Server Management Studio, которая отображает информацию о процессах SQL Server и их влиянии на производительность SQL Server

Области монитора активности

Монитор активности состоит из нескольких панелей: «Обзор», «Процессы», «Ожидание ресурсов», «Ввод-вывод файла данных» и «Последние дорогостоящие запросы». Панели можно разворачивать и сворачивать. Действия запрашиваются только тогда, когда конкретная панель развернута

«Мониторинг активности выполняет запросы к отслеживаемому экземпляру, чтобы получить информацию для панелей отображения Монитора активности. Если для интервала обновления задано значение менее 10 секунд, время, затрачиваемое на выполнение этих запросов, может повлиять на производительность сервера». [1]

Обзорная панель

Обзорная панель содержит графики для наиболее важной информации об экземпляре SQL Server. Контекстное меню содержит параметр Интервал обновления, для которого можно установить предопределенное значение от 1 секунды до 1 часа

Монитор активности SQL Server — панель обзора

% процессорного времени — это процент времени, которое процессоры тратят на выполнение потоков, которые не простаивают

Ожидающие задачи — это количество задач, ожидающих освобождения процессора, ввода-вывода или памяти для обработки задач

Ввод/вывод базы данных – скорость передачи данных в МБ/с из памяти на диск, с диска в память или с диска на диск

Пакетные запросы/сек — количество пакетов SQL Server, полученных экземпляром за секунду

Панель «Процессы»

На панели «Процессы» отображается информация о запущенных в данный момент процессах в базах данных SQL, кто их запускает и из какого приложения

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

Контекстное меню для конкретного процесса предоставляет параметры для просмотра последнего пакета команд T-SQL для процесса, его уничтожения или трассировки в SQL Server Profiler

Панель

Идентификатор сеанса – это уникальное значение, присваиваемое компонентом Database Engine каждому пользовательскому соединению. Это значение spid, возвращаемое процедурой sp_who

.

Пользовательский процесс — 1 для пользовательских процессов, 0 для системных процессов. Фильтр по умолчанию установлен на 1, поэтому отображаются только пользовательские процессы

Логин — логин SQL Server, под которым запускается сеанс

База данных — имя базы данных, в которой запущен процесс

Состояние задачи — состояние задачи, пустое для задач в состоянии выполнения и в состоянии ожидания. Значение также можно получить с помощью представления sys.dm_os_tasks в виде столбца task_state. Возвращаемые состояния могут быть следующими:
"PENDING: Ожидание рабочего потока.
RUNNABLE: работает, но ожидает получения кванта.
РАБОТАЕТ: В настоящее время выполняется в планировщике.
SUSPENDED: есть воркер, но ожидается событие.
ГОТОВО: Завершено.
SPINLOOP: застрял в спин-блокировке.
[2]

Command — текущий тип команды. Значение также можно получить с помощью представления sys.dm_exec_requests в виде столбца command

.

Приложение — имя приложения, создавшего соединение

Время ожидания (мс) — сколько времени в миллисекундах задача ожидает ресурса. Значение также можно получить с помощью представления sys.dm_os_waiting_tasks в виде столбца wait_duration_ms

.

Тип ожидания — последний/текущий тип ожидания. Значение также можно получить с помощью представления sys.dm_os_waiting_tasks в виде столбца wait_type. Ожидания могут быть ресурсными, очередными и внешними.

Ресурс ожидания – ресурс, которого ожидает соединение. Значение также можно получить с помощью представления sys.dm_os_waiting_tasks в виде столбца resource_description

.

Blocked By — идентификатор сеанса, который блокирует задачу. Значение также можно получить с помощью представления sys.dm_os_waiting_tasks в виде столбца blocking_session_id

.

Head Blocker — сеанс, вызывающий первое условие блокировки в цепочке блокировки

Использование памяти (КБ) — объем памяти, используемый задачей. Значение также можно получить с помощью представления sys.dm_exec_sessions в виде столбца memory_usage

.

Имя хоста — имя компьютера, на котором выполняется текущее подключение.Значение также можно получить с помощью представления sys.dm_exec_sessions в виде столбца host_name

.

Группа рабочей нагрузки – имя группы рабочей нагрузки регулятора ресурсов[3]. Значение также можно получить с помощью представления sys.dm_resource_Governor_workload_groups в виде столбца name

.

Панель ожидания ресурсов

Показывает информацию об ожидании ресурсов

Монитор активности SQL Server — панель ожидания ресурсов

Категория ожидания — категории создаются из тесно связанных типов ожидания. Типы ожидания отображаются в столбце Тип ожидания на панели «Процессы»

.

Время ожидания (мс/сек) — время ожидания всеми ожидающими задачами одного или нескольких ресурсов

Недавнее время ожидания (мс/сек) — среднее время ожидания всеми ожидающими задачами одного или нескольких ресурсов

Среднее количество ожидающих — рассчитывается для типичного момента времени в последнем интервале выборки и представляет собой количество задач, ожидающих одного или нескольких ресурсов

Совокупное время ожидания (сек) – общее время ожидания задачи для одного или нескольких ресурсов с момента последнего перезапуска SQL Server или последнего выполнения DBCC SQLPERF

Панель ввода/вывода файла данных

Показывает информацию о файлах базы данных в экземпляре SQL Server. Для каждой базы данных перечислены все файлы базы данных – MDF, LDF и NDF, их пути и имена

Панель ввода-вывода файла данных в действии Монитор

Чтение МБ/сек — показывает недавнюю активность чтения файла базы данных

Записано МБ/сек — показывает недавнюю активность записи в файл базы данных

Время отклика (мс) – среднее время отклика для последних операций чтения и записи

Панель "Последние дорогостоящие запросы"

Дорогие запросы — это запросы, использующие много ресурсов: память, диск, сеть. Панель показывает дорогостоящие запросы, выполненные за последние 30 секунд. Информация получена из представлений sys.dm_exec_requests и sys.dm_exec_query_stats. Двойной щелчок по запросу открывает отслеживаемый оператор

Контекстное меню для конкретного запроса содержит параметры для открытия запроса в редакторе запросов и отображения плана выполнения

Последние дорогостоящие запросы в SQL Server Activity

Query — отслеживаемый оператор SQL-запроса

Executions/min — количество выполнений в минуту с момента последней перекомпиляции. Значение также можно получить с помощью представления sys.dm_exec_query_stats в виде столбца execution_count

.

CPU (мс/сек) — используемая частота процессора с момента последней перекомпиляции. Значение также можно получить с помощью представления sys.dm_exec_query_stats в виде столбца total_worker_time

.

Физических операций чтения/сек, Логических операций записи/сек и Логических операций чтения/сек — скорость физического чтения/логической записи/логического чтения в секунду. Значение также можно получить с помощью представления sys.dm_exec_query_stats в виде столбцов total_physical_reads/ total_logical_writes/ total_logical_reads

.

Средняя продолжительность (мс) – среднее время выполнения запроса. Рассчитывается на основе столбцов total_elapsed_time и execution_count в представлении sys.dm_exec_query_stats

Plan Count – количество повторяющихся планов запросов. Большое количество требует изучения и возможной явной параметризации запроса

Требования к использованию Activity Monitor

Для просмотра Activity Monitor необходимо разрешение VIEW SERVER STATE

Для просмотра панели ввода-вывода файла данных, помимо ПРОСМОТРА СОСТОЯНИЯ СЕРВЕРА, для входа в систему должны быть предоставлены разрешения СОЗДАТЬ БАЗУ ДАННЫХ, ИЗМЕНИТЬ ЛЮБУЮ БАЗУ ДАННЫХ или ПРОСМОТР ЛЮБОГО ОПРЕДЕЛЕНИЯ

Чтобы завершить процесс, необходимо быть членом роли системного администратора

Как запустить монитор активности

Существует несколько способов запустить Монитор активности: на панели инструментов SQL Server Management Studio щелкните значок Монитор активности, используйте сочетание клавиш Ctrl+Alt+A или в обозревателе объектов щелкните правой кнопкой мыши экземпляр SQL Server и выберите Монитор активности.

Еще один вариант — настроить Activity Monitor так, чтобы он открывался при запуске SQL Server Management Studio

  1. В меню SQL Server Management Studio выберите "Инструменты", а затем "Параметры".
  2. Открыть среду | Вкладка "Запуск"
  3. Выберите параметр «Открыть обозреватель объектов и монитор активности».

При следующем запуске SQL Server Management Studio обозреватель объектов будет отображаться слева, а монитор активности — справа

Монитор активности — это функция SQL Server Management Studio, которая отслеживает некоторые из наиболее важных показателей, влияющих на производительность. Он показывает метрики в режиме реального времени, без готового решения для их сохранения для последующего анализа. Фильтровать по конкретной базе данных/параметру легко, но исключить конкретное значение невозможно. Мониторинг дополнительных метрик также невозможен. Из-за ограниченного набора функций и отслеживаемых показателей не рекомендуется использовать его для углубленного мониторинга производительности.

Милена — специалист по SQL Server с более чем 20-летним опытом работы в сфере ИТ. Она начала с компьютерного программирования в средней школе и продолжила в университете.

Она работает с SQL Server с 2005 года и имеет опыт работы с SQL 2000 – SQL 2014.

Ее любимыми темами SQL Server являются аварийное восстановление SQL Server, аудит и мониторинг производительности.

  • Использование настраиваемых отчетов для улучшения отчетов о производительности в SQL Server 2014 — запуск и изменение отчетов – 12 сентября 2014 г.
  • Использование настраиваемых отчетов для улучшения отчетов о производительности в SQL Server 2014 — основы — 8 сентября 2014 г.
  • Отчеты панели мониторинга производительности в SQL Server 2014 – 29 июля 2014 г.

Похожие сообщения:

О Милене Петрович

Милена — специалист по SQL Server с более чем 20-летним опытом работы в сфере ИТ. Она начала с компьютерного программирования в средней школе и продолжила в университете. Она работает с SQL Server с 2005 года и имеет опыт работы с SQL 2000 по SQL 2014. Ее любимые темы SQL Server — аварийное восстановление SQL Server, аудит и мониторинг производительности. Просмотреть все сообщения Милены «Милли» Петрович

Монитор активности ApexSQL Monitor — это функция мониторинга в режиме реального времени, которая отображает данные о производительности, связанные с процессами SQL Server, чтобы помочь понять влияние этих процессов на отслеживаемый экземпляр SQL Server. Он объединяет данные о производительности SQL Server в режиме реального времени, собранные из различных частей SQL Server, и представляет их в графической и табличной форме для более легкого и быстрого просмотра и понимания.

Где можно просмотреть данные монитора активности?

В ApexSQL Monitor панель мониторинга экземпляра — это первая остановка, где данные монитора активности представлены в виде трех диаграмм: ожидающие задачи, ввод-вывод базы данных [МБ/с], пакетные запросы/сек.


< /p>

  • Ожидающие задачи: на диаграмме отображается количество задач SQL Server, ожидающих в данный момент различных ресурсов, таких как ЦП, память или ввод-вывод.
  • Ввод-вывод базы данных — отображает текущую скорость передачи, когда механизм базы данных считывает/записывает блоки данных с диска в память, из памяти на диск или с диска на диск. Измеряется в мегабайтах в секунду.
  • Пакетных запросов/сек. Метрика отражает производительность SQL Server, отображая количество пакетов SQL Server, которые отслеживаемый экземпляр SQL Server получает за одну секунду. Дополнительные сведения см. в разделе Счетчики производительности SQL Server (пакетных запросов/сек или транзакций/сек): что отслеживать и почему

Как часто обновляются диаграммы монитора активности на панели управления экземплярами?

Диаграммы считывают и отображают данные из отслеживаемого экземпляра каждые пять секунд. Частота обновления диаграммы фиксирована и не может быть изменена пользователем.

Как получить более подробную информацию о текущей активности SQL Server?

Хотя на панели мониторинга экземпляра отображаются 3 наиболее важные диаграммы производительности монитора активности, для получения подробных данных монитора активности откройте специальную страницу мониторинга активности по ссылке "Подробности" в разделе "Мониторинг активности" на панели мониторинга экземпляра.


< /p>


< /p>

Как классифицируются данные монитора активности?

Страница "Мониторинг активности" состоит из трех основных разделов производительности: "Процессы", "Активные ресурсоемкие запросы" и "Ожидание ресурсов".

Процессы — в этом разделе отображается список всех активных процессов, которые подключены и выполняются на отслеживаемом экземпляре SQL Server. Следующие данные отображаются непосредственно в связанной таблице:

  • Идентификатор сеанса – это уникальный номер, присваиваемый каждому новому процессу при подключении к SQL Server.
  • Время ожидания (мс) — отображает время в миллисекундах, в течение которого конкретный процесс ожидает один или несколько ресурсов. Когда процесс не находится в состоянии ожидания ресурсов, время ожидания отображает 0 в качестве значения
  • Тип ожидания — текущий или последний тип ожидания, которого вынужден ожидать конкретный процесс.
  • Заблокировано: если другой процесс блокирует отслеживаемый процесс, здесь отображается идентификатор сеанса этого блокирующего процесса. Если такой блокировки нет, отображается N/A
  • Блокировщик — в ситуациях, когда цепочка блокировки существует, здесь отображается сеанс, который является головным блокировщиком для цепочки блокировки. В случае, если фактический процесс мониторинга блокирует голову для других процессов, в поле отображается значение 1
  • Общая загрузка ЦП (мс) – время в миллисекундах, затраченное процессом на ЦП во время выполнения.
  • Общий физический ввод-вывод (МБ) – объем данных в мегабайтах, который процесс использует для операций чтения и записи на физический диск.
  • Использование памяти (КБ) — отображает объем памяти в килобайтах, который используется процессом во время выполнения.
  • Состояние — указывает состояние процесса. Если процесс находится в состоянии выполнения или сна, это состояние будет помечено как N/A. В других случаях состояние может иметь одно из следующих значений: «Выполняется», «Приостановлено» или «Фон».
  • Команда — указывает команду SQL, используемую процессом в момент мониторинга. Это может быть любая команда SQL, например Insert, Delete, Select, Waitfor и другие.

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


< /p>

Некоторые элементы описаны ниже:

  • Логин — имя входа в SQL Server, используемое для запуска отслеживаемого процесса.
  • Время входа — указывает время и дату, когда конкретный пользователь, используемый для запуска отслеживаемого процесса, вошел в систему. Не обязательно указывает время и дату запуска процесса.
  • Хост — отображает имя машины (компьютера), с которой выполняется подключение к SQL Server.
  • Сетевой адрес — уникальный идентификатор, присвоенный сетевой карте на хост-компьютере. Когда пользователь входит в систему, назначается сетевой адрес, и он объединяет MAC и IP с номером порта, что должно гарантировать, что требуемые результаты будут направлены на правильное соединение.
  • Группа рабочей нагрузки — отображает имя группы рабочей нагрузки регулятора ресурсов, назначенного сеансу, в котором размещается отслеживаемый процесс.

Активные дорогостоящие запросы

В этом сеансе отображаются запросы, которые плохо работают в отслеживаемом экземпляре.


< /p>

  • Прошедшее время – время в миллисекундах, которое накопилось во время выполнения запроса.
  • Физических чтений/сек – количество физических чтений, выполняемых запросом за одну секунду. Указывает, с какой скоростью запрос выполняет чтение с диска.
  • Физических операций записи/сек – количество физических операций записи, выполняемых запросом за одну секунду. Указывает, с какой скоростью запрос выполняет запись на диск.
  • Логических операций чтения/сек – количество логических операций чтения, выполняемых запросом за одну секунду. Указывает, с какой скоростью запрос считывает данные из базы данных SQL Server.
  • Количество строк — количество строк, задействованных/обработанных запросом во время выполнения.

Для более подробного изучения запросов, отображаемых в разделе "Активные дорогостоящие запросы", можно перейти к странице "Ожидание одного запроса" по ссылке в имени запроса в столбце идентификатора.


< /p>

Ресурс ожидает

В этом разделе содержится важная информация о времени ожидания в SQL Server для ключевых ресурсов SQL Server, связанных с производительностью, таких как ЦП, ввод-вывод, память, сеть и т. д.

  • Категория ожидания — отображает категории статистики ожидания, в которых логически организованы различные связанные типы ожидания.
  • Время ожидания (мс/сек) — время ожидания, измеряемое в миллисекундах в секунду, отображает время ожидания всех процессов на отслеживаемом SQL Server, ожидающих ресурсов указанной категории ожидания. Это скорость ожидания в SQL Server в одну секунду в интервале между двумя обновлениями.
  • Среднее количество ожидающих — количество процессов, находящихся в состоянии ожидания ресурсов, принадлежащих к этой категории ожидания, измеренное в определенный момент выборки данных из SQL Server.
  • Совокупное время ожидания (сек.) — общее время ожидания в секундах, накопленное для определенной категории ожидания с момента последнего запуска SQL Server.

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


< /p>

Могу ли я просмотреть эти данные для конкретной интересующей базы данных?

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


< /p>

Данные для выбранной базы данных будут отображаться только до тех пор, пока пользователь не изменит базу данных. Чтобы снова отобразить данные для всего SQL Server, используйте «x» в раскрывающемся меню, чтобы удалить выбранную базу данных.

Автор Пол Готшлинг

Изучите основные этапы реализации успешной стратегии мониторинга в масштабе облака.

Загрузите, чтобы узнать больше

В части 1 этой серии мы рассмотрели ряд функций, которые SQL Server предоставляет для оптимизации использования ресурсов. Например, вы можете настроить способ компиляции пакетов запросов, настроить буферный кеш на очистку через разные промежутки времени и создать таблицы, оптимизированные для памяти. Чтобы максимально использовать эти функции, необходимо получать информацию о работоспособности и производительности SQL Server в режиме реального времени. Здесь мы рассмотрим инструменты мониторинга SQL Server со встроенными функциями и часто используемыми приложениями, в том числе:

  • Запросы T-SQL. Используйте язык запросов SQL Server для сбора внутренних данных.
  • SQL Server Management Studio (SSMS): получайте представления системы в режиме реального времени, схемы запросов T-SQL и отчеты по требованию.
  • Монитор производительности: сопоставление показателей из SQL Server с данными с хостов Windows.

Инструменты мониторинга SQL Server могут помочь вам получить доступ к метрикам, которые мы обсуждали в части 1. Некоторые из этих инструментов сообщают одни и те же метрики, и вы можете предпочесть один интерфейс другому. Например, вы можете использовать монитор производительности или запросы T-SQL для получения метрик от счетчиков производительности SQL Server. Вы можете выбрать графики в реальном времени в первом случае вместо возможности написания сценария во втором. В этом посте мы объясним, как использовать инструменты мониторинга SQL Server, чтобы получить полное представление об инфраструктуре вашей базы данных.

Использование запросов T-SQL

Вы можете отслеживать SQL Server, используя его собственный язык запросов, T-SQL, для сбора метрик. Запросы T-SQL гибки. Вы можете запускать их с помощью графического инструмента управления, такого как SSMS, или утилиты командной строки, такой как sqlcmd. А поскольку они выполняются и возвращают данные так же, как и любой другой запрос к базе данных, вы можете легко включить их в собственное решение для автоматизированного мониторинга. В этом разделе мы покажем, как запросы T-SQL могут быть мощным инструментом для мониторинга SQL Server, независимо от того, используете ли вы динамические представления управления, встроенные функции, хранимые процедуры или наборы сбора системных данных.

Динамические представления управления

SQL Server отслеживает данные о своей работоспособности и производительности и делает эту информацию доступной через динамические представления управления (DMV). Поскольку DMV отображаются как виртуальные таблицы, они подходят как для специальных, так и для автоматических запросов. Некоторые DMV возвращают текущее значение метрики или параметра (например, текущий размер журнала транзакций в мегабайтах). Другие, особенно метрики скоростей в счетчиках производительности DMV, измеряют значения через равные промежутки времени и берут разницу между последовательными выборками (например, пакетные запросы в секунду). Вы можете прочитать о конкретных DMV в документации по SQL Server.

Если вы отслеживаете SQL Server с помощью динамических представлений управления, вам, вероятно, потребуется запросить счетчики производительности DMV, sys.dm_os_performance_counters . Каждый объект производительности SQL Server (который может представлять что угодно, от базы данных до кэша планов) поддерживает собственный набор счетчиков производительности, которые сопоставляются со многими категориями показателей, обсуждавшихся в части 1: статистика SQL, блокировки и диспетчер буферов.

Например, вы можете запросить DMV счетчиков производительности, чтобы просмотреть данные из объекта производительности диспетчера буферов и ограничить результаты метриками с ненулевыми значениями:

Вы получите результат, похожий на этот (но с гораздо большим количеством строк!):

Здесь вы можете найти список доступных представлений динамического управления, организованных по категориям. Представления в каждой категории разнообразны: одни рассчитывают показатели производительности и выходные данные, другие сообщают об именах и свойствах.Вы можете перечислить узлы SQL Server в кластере, получить данные об использовании индекса и получить статистику для ваших планов выполнения, например время выполнения и использование ресурсов. А поскольку динамические представления управления ведут себя как таблицы, вы можете использовать встроенные функции для агрегирования и ранжирования данных.

Важно проверить документацию любого DMV, которое вы планируете использовать. Одна из причин заключается в том, что DMV требуют разных разрешений, и документация для каждого DMV объясняет требуемый уровень. Другая причина заключается в том, что DMV могут содержать тысячи строк, а столбцы могут изменяться в новых версиях SQL Server.

Встроенные функции

SQL Server также включает встроенные функции, помогающие получить доступ к системной информации. В отличие от динамических представлений управления, которые возвращают данные в форме виртуальных таблиц, встроенные функции возвращают системные данные в виде отдельных числовых значений, рассчитанных с момента последнего запуска сервера. Вы можете вызывать каждую встроенную функцию в качестве аргумента оператора SELECT. Например, вы можете использовать встроенную функцию @@connections, чтобы вернуть сумму успешных и неуспешных подключений с течением времени:

Вы получите вывод, аналогичный следующему:

Встроенные функции иногда напоминают динамические представления управления. @@connections аналогичен счетчику User Connections в объекте общей статистики. Но в то время как User Connections отслеживает количество подключенных в данный момент пользователей, @@connections увеличивается каждый раз, когда пользователь пытается войти в систему (даже если попытка не удалась).

Единственная встроенная функция системной статистики, которая не возвращает ни одного числового значения, — это sys.fn_virtualfilestats, которая возвращает таблицу с данными о дисковом вводе-выводе для файлов базы данных и дает ту же информацию, что и sys.dm_io_virtual_file_stats. динамическое представление управления.

Системные хранимые процедуры

Примечание редактора. SQL Server использует термин "основной" для обозначения своей основной базы данных. Datadog не использует этот термин.

Еще одна встроенная функция, которую вы можете использовать для запроса метрик, — это системная хранимая процедура. Большинство хранимых процедур помогают с административными задачами, такими как присоединение базы данных или добавление имени входа, но некоторые хранимые процедуры сообщают метрики. Например, sp_spaceused измеряет использование диска в базе данных. Вы вызываете системные хранимые процедуры с операторами EXEC, а не с операторами SELECT. Эта команда вызывает хранимую процедуру sp_spaceused, которая возвращает информацию об использовании диска в виде двух результирующих наборов (то есть двух строк таблицы, каждая из которых включает разные столбцы):

Вывод будет иметь формат, аналогичный следующему:

Наборы сбора системных данных

Если вы используете запросы T-SQL для сбора метрик из SQL Server и хотите иметь возможность хранить данные и создавать отчеты, вы можете рассмотреть возможность использования наборов сбора SQL Server. Набор сбора собирает данные из ряда команд отчетности и динамических представлений управления и отправляет данные в специальную базу данных, называемую хранилищем данных управления.

Этот процесс зависит от служб SQL Server Integration Services для автоматизации задачи запроса базы данных и записи результатов в хранилище данных управления.

Например, начиная с SQL Server 2008, набор сбора данных об использовании диска запрашивает динамическое административное представление sys.dm_io_virtual_file_stat и другие представления, такие как sys.partitions и sys.allocation_units . Вы также можете создать пользовательский набор сбора, который объединяет последовательность запросов T-SQL в периодическое задание, которое выполняется в фоновом режиме. Подробнее о настройке хранилища управления данными можно узнать здесь.

Студия управления SQL Server

SQL Server Management Studio (SSMS) – это графическая среда, позволяющая контролировать систему несколькими способами:

  • Текущая статистика в мониторе активности
  • Подробная карта заданного запроса
  • Отчеты, сочетающие таблицы, графики и текст в удобном для печати формате.

Чтобы использовать SSMS, вам необходимо загрузить ее на один из ваших хостов, открыть программу установки и следовать инструкциям. Программное обеспечение может отслеживать удаленные экземпляры SQL Server, включая любые экземпляры, работающие в Linux. Чтобы подключиться к хосту, перейдите в меню «Файл» и нажмите «Подключить обозреватель объектов». В следующем диалоге укажите хост и порт в поле «Имя сервера» в формате 0.0.0.0,0000 (обратите внимание на запятую). Выберите «Аутентификация SQL Server» в раскрывающемся меню «Аутентификация» и введите имя пользователя («Логин») и пароль.

Инструменты мониторинга SQL Server: указание удаленного хоста в SSMS

Если вы успешно подключились, вы увидите окно «Обозреватель объектов», заполненное деревом файлов, в котором показаны компоненты вашего экземпляра SQL Server, включая базы данных. После этого вы сможете отслеживать свой экземпляр с помощью функций, показанных ниже.

Монитор активности

Мониторинг активности позволяет просматривать показатели SQL Server в режиме реального времени с галереей графиков, обзором процессов и статистикой по вашим запросам. Если вы уже используете SSMS для задач управления, таких как настройка пулов ресурсов или создание таблиц, Монитор активности легко добавить в ваш рабочий процесс. Чтобы использовать Монитор активности, введите «Ctrl-Alt-A» или щелкните значок на панели инструментов SSMS.

Инструменты мониторинга SQL Server: окно Activity Monitor

Вы можете использовать Монитор активности, чтобы в режиме реального времени получать информацию о потребностях вашего экземпляра SQL Server. В разделе «Обзор» представлены четыре графика, которые отображают показатели работы и ресурсов в режиме реального времени. По умолчанию эти показатели обновляются каждые 10 секунд, но вы можете изменить интервал обновления, щелкнув правой кнопкой мыши панель «Обзор». Хотя интервал обновления может составлять раз в секунду, это приводит к снижению производительности из-за более частых запросов к базе данных.

Панель «Последние дорогостоящие запросы» в мониторе активности может помочь предоставить информацию, необходимую для повышения эффективности ваших запросов. Здесь вы найдете показатели, связанные с запросами, такие как количество выполнений в минуту, количество физических операций чтения в секунду и количество дубликатов плана выполнения в кеше. Если один план выполнения имеет большое количество дубликатов или выполнений в минуту, вы можете повысить производительность, используя подсказки запросов, как описано в части 1.

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

Визуализация запросов

SSMS может помочь вам оптимизировать производительность запросов, позволяя вам визуализировать, как SQL Server выполняет свои планы запросов, и показывая вам использование ресурсов, связанное с выполнением каждого шага плана запроса. Как мы обсуждали в части 1, SQL Server компилирует пакеты операторов T-SQL, используя автоматический оптимизатор для преобразования пакета в план выполнения. Вы можете просмотреть план выполнения в SSMS как диаграмму вычислительных шагов и узнать, как именно оптимизатор интерпретировал ваш пакет. Чтобы визуализировать запрос, перейдите на панель «Недавние дорогостоящие запросы» монитора активности, щелкните правой кнопкой мыши один из запросов и выберите «Показать план выполнения». Последующее представление будет выглядеть примерно так:

Инструменты мониторинга SQL Server: схема плана запроса в SQL Server

Если вы наведете указатель мыши на узел на диаграмме, вы увидите краткое объяснение шага, который представляет узел, а также быстрое считывание «Расчетных затрат на оператора» узла. Это значение вычисляется оптимизатором SQL Server при выполнении запроса. Поскольку процесс оптимизации является автоматическим, это дает вам возможность проверить, правильно ли скомпилированы ваши пакеты. А поскольку каждый шаг в плане выполнения оценивается по стоимости, вы можете видеть, на каких шагах вам следует сосредоточиться, если вы хотите повысить производительность.

В этом примере мы видим, что вычисление скаляра (преобразование строки в число с плавающей запятой) минимально, с нулевой стоимостью в плане выполнения. Самая затратная операция — это метод оптимизации, буферизация таблиц, при котором строки копируются в скрытую временную таблицу.

Отчеты

SSMS предлагает 20 стандартных отчетов, предоставляющих подробный обзор вашего развертывания SQL Server, начиная от использования ресурсов вашей базы данных и заканчивая историческими данными об изменениях схемы и согласованности базы данных. Подробную разбивку отчетов можно найти здесь.

Инструменты мониторинга SQL Server: пример отчета SQL Server Management Studio

Отчеты фиксированы в макете и содержании — они показывают данные, доступные в момент создания отчета, а не обновляются в режиме реального времени. Интерактивность в стандартных отчетах ограничена. Вы можете сортировать некоторые таблицы по столбцам и расширять другие, когда информация вложена. Фиксированный макет упрощает создание распечаток или документов (PDF, Word и Excel).

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

Чтобы создать отчет, щелкните правой кнопкой мыши имя базы данных в обозревателе объектов, наведите указатель мыши на «Отчеты», затем на «Стандартные отчеты» и выберите отчет в меню.

Если вы не можете найти нужное представление в стандартных отчетах SSMS, вы можете создать собственный отчет. Пользовательские отчеты пишутся на языке определения отчетов (RDL), расширении XML. После того, как вы указали структуру пользовательского отчета, вы можете заполнить его из меню «Отчеты», нажав «Пользовательские отчеты». Они остаются отдельными от списка стандартных отчетов.

Также стоит отметить, что Microsoft разработала несколько инструментов для создания графических отчетов, которые выходят за рамки функциональности SSMS. Power BI может визуализировать данные из ряда источников, включая SQL Server, и поставляется с более полным набором средств визуального редактирования. Службы SQL Server Reporting Services (SSRS) – это инструмент для создания графических отчетов, разработанный для SQL Server, который может создавать отчеты с разбивкой на страницы в формате PDF, а также визуализировать данные для мобильных устройств и Интернета.

Монитор производительности

Монитор производительности Windows помогает визуализировать использование ресурсов на системном уровне хостами Windows и позволяет сопоставлять эти показатели со счетчиками производительности SQL Server на графиках временных рядов.

Инструменты мониторинга SQL Server: график Performance Monitor, показывающий процент загрузки процессора

Монитор производительности встроен в операционную систему Windows. Чтобы использовать его, откройте окно «Выполнить» из меню «Пуск» и введите имя программы perfmon. График в реальном времени появится в дереве навигации в разделе «Инструменты мониторинга». Затем вы можете выбрать счетчики производительности SQL Server и показатели системных ресурсов, которые хотите отобразить, и использовать параметры для оформления графиков.

Выбор счетчиков производительности SQL Server для отображения в системном мониторе

Дополнительные инструменты мониторинга SQL Server в режиме реального времени

В этом посте мы показали, как использовать инструменты мониторинга SQL Server и встроенные функции для создания обзоров ваших баз данных в режиме реального времени, а также для получения подробных данных по запросу о работоспособности и производительности SQL Server.

В следующей части этой серии статей мы покажем вам, как использовать Datadog для сбора, построения графиков и оповещения по метрикам SQL Server в реальном времени и за прошлые периоды. Мы также покажем вам, как настраивать информационные панели с визуализацией с помощью перетаскивания и сопоставлять показатели SQL Server с данными из вашего стека.

Мне нравятся бесплатные инструменты. Я также люблю анализировать статистику ожидания SQL Server. Но я не фанат Activity Monitor, бесплатного инструмента в студии управления SQL Server, который помогает вам просматривать статистику ожидания.

Монитор активности просто не дает вам всей правды.

Я запустил рабочую нагрузку с помощью HammerDB на тестовом экземпляре SQL Server 2014. В моей рабочей нагрузке выполняется очень интенсивный запрос к базе данных tempdb, и это действительно избивает SQL Server, выполняя непрерывные запросы в семи потоках.

Давайте посмотрим на нашу статистику ожидания. Вот что показывает Activity Monitor в SQL Server 2014:

ActivityMonitorSQLServer

"Буферная защелка", должно быть, моя проблема.

Вот что показывает наша бесплатная процедура sp_BlitzFirst для 10-секундного примера во время выполнения рабочей нагрузки. Я запустил: exec sp_BlitzFirst @ExpertMode=1, @Seconds=10;

sp_BlitzFirst

Хмммм, кажется, что этот топовый тип ожидания вообще не был на первом снимке экрана.

Вот что бесплатная процедура Адама Маханика, sp_WhoIsActive, показывает на мгновение во время рабочей нагрузки. Я запустил: exec sp_WhoIsActive

spWhoIsActive

Здесь я узнаю подробности о том, что такое ожидание, и связанный с ним запрос.

Монитор активности группирует типы ожидания. Потребовалось много ожиданий, и они превратились в «Buffer Latch». Это не обязательно плохо, но я никогда не слышал о документации, объясняющей, что и в какие группы входит. Для сравнения, sp_BlitzFirst показал мне конкретные типы ожидания PAGELATCH_UP, PAGELATCH_SH и PAGELATCH_EX с указанием суммы для каждого из них. sp_WhoIsActive даже показал мне тип страницы с узким местом (GAM), а также базу данных и файл данных (файл данных tempdb 1).

Друзья не разрешают друзьям использовать монитор активности. Это может быть удобно, но это не говорит вам правду. Сделайте себе одолжение и воспользуйтесь бесплатным инструментом, который сразу же предоставит вам статистику ожидания.

Читайте также: