Поделиться через


Анализ производительности запросов в Базе данных Azure для PostgreSQL

Аналитика производительности запросов обеспечивает интеллектуальный анализ запросов для баз данных в гибком экземпляре сервера Базы данных Azure для PostgreSQL. Он помогает определить наиболее ресурсоемкие и долго выполняющиеся запросы в рабочей нагрузке. Это помогает найти запросы для оптимизации для повышения общей производительности рабочей нагрузки и эффективного использования ресурса, за который вы оплачиваете. Анализ производительности запросов позволяет тратить меньше времени на устранение неполадок с производительностью базы данных, предоставляя следующие возможности.

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

Необходимые компоненты

  1. хранилище запросов включена в базе данных. Если хранилище запросов не запущен, портал Azure предложит включить его. Чтобы включить хранилище запросов, см. здесь.

Примечание.

хранилище запросов в настоящее время отключен. Аналитика производительности запросов зависит от хранилище запросов данных. Его необходимо включить, установив для параметра pg_qs.query_capture_mode динамического сервера значение ALL или TOP.

  1. выборка ожидания хранилище запросов включена в базе данных. Если выборка хранилище запросов ожиданий не выполняется, портал Azure предложит включить ее. Чтобы включить выборку хранилище запросов ожидания, см. здесь.

Примечание.

хранилище запросов Выборка ожидания в настоящее время отключена. Анализ производительности запросов зависит от хранилище запросов данных выборки ожидания. Его необходимо включить, установив для параметра pgms_wait_sampling.query_capture_mode динамического сервера значение ALL.

  1. Рабочая область Log Analytics настроена для хранения 3 категорий журналов, включая журналы сеансов гибких экземпляров сервера Базы данных Azure для PostgreSQL, гибкое хранилище запросов сервера Базы данных Azure для PostgreSQL и среду выполнения, а также гибкую статистику ожидания хранилища запросов базы данных Azure для PostgreSQL. Чтобы настроить log analytics, ознакомьтесь с рабочей областью Log Analytics.

Примечание.

Данные хранилище запросов не передаются в рабочую область Log Analytics. Журналы (данные сеансов, среда выполнения хранилища запросов или статистика ожидания хранилища запросов) не отправляются в рабочую область Log Analytics, которая необходима для использования Query Performance Insight. Чтобы настроить параметры диагностики для гибкого экземпляра сервера Базы данных Azure для PostgreSQL и отправить данные в рабочую область log analytics, см. статью "Настройка и доступ к журналам в Базе данных Azure для PostgreSQL".

Разрешения

Вам потребуются следующие разрешения на управление доступом на основе ролей Azure (Azure RBAC), назначенные базе данных Azure для гибкого экземпляра сервера PostgreSQL, чтобы использовать аналитику производительности запросов:

  • "Microsoft.DBforPostgreSQL/flexibleServers/configurations/read"
  • Microsoft.DBforPostgreSQL/flexibleServers/providers/Microsoft.Insights/diagnosticSettings/read
  • Microsoft.DBforPostgreSQL/flexibleServers/read
  • Microsoft.Insights/Components/read
  • Microsoft.Insights/DiagnosticSettings/читать
  • Microsoft.Insights/DiagnosticSettingsCategories/read
  • Microsoft.Insights/Logs/AzureDiagnostics/read (Примечание: использование этой команды позволяет читать данные диагностики в службах Azure)
  • Microsoft.Insights/Logs/read

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

Представление "Аналитика производительности запросов" в портал Azure отображает визуализации ключевых сведений из хранилище запросов. Анализ производительности запросов легко использовать:

  1. Откройте портал Azure и найдите База данных Azure для PostgreSQL гибкий экземпляр сервера, который требуется проверить.

  2. В меню слева выберите Интеллектуальные средства повышения производительности>Анализ производительности запросов.

  3. Выберите диапазон времени для изучения запросов.

  4. На первой вкладке просмотрите список длительных запросов.

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

  6. При необходимости можно выбрать настраиваемый диапазон времени.

Примечание.

Для гибкого экземпляра сервера Базы данных Azure для PostgreSQL для отображения сведений о производительности запросов хранилище запросов должно записывать несколько часов данных. Если в базе данных нет активности или хранилище запросов было неактивно в течение определенного времени, диаграммы не будут содержать данные по анализу производительности запросов за этот период. Вы можете в любой момент включить хранилище запросов, если оно не запущено. Дополнительные сведения см. в статье Рекомендации по работе с хранилищем запросов.

  1. Чтобы просмотреть сведения о конкретном запросе, щелкните QueryId Snapshot раскрывающийся список. Снимок экрана: просмотр сведений о конкретном запросе.

  2. Чтобы получить текст запроса конкретного запроса, подключитесь к azure_sys базе данных на сервере и выполните запрос query_store.query_texts_view с помощью QueryIdзапроса. Снимок экрана: получение текста запроса определенного запроса.

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

    • Статистика ожидания
    • Основные запросы по вызовам
    • Основные запросы по использованию данных
    • Основные запросы по операций ввода-вывода в секунду
    • Основные запросы по временным файлам

Рекомендации

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