Открыть сервис

Automatic Workload Repository

Automatic Workload Repository (AWR) — это встроенный компонент системы управления базами данных Oracle Database, предназначенный для сбора, хранения и анализа статистической информации о производительности и нагрузке на экземпляр базы данных. AWR является частью пакета Oracle Database Diagnostic Pack и служит основой для автоматизированной диагностики проблем производительности, а также для генерации отчётов о состоянии системы.

История

AWR был впервые представлен в версии Oracle Database 10g (выпущена в 2003 году) как замена устаревшему инструменту Statspack, который требовал ручного запуска и не обладал возможностями автоматического сбора данных. Основной целью внедрения AWR стало обеспечение администраторов баз данных (DBA) и разработчиков готовым механизмом для мониторинга производительности без необходимости настройки сторонних утилит. Начиная с Oracle Database 11g, функциональность AWR была расширена за счёт интеграции с Active Session History (ASH) и Automatic Database Diagnostic Monitor (ADDM), что позволило проводить более глубокий анализ в реальном времени.

Архитектура и принцип работы

AWR функционирует как фоновый процесс, который с заданной периодичностью (по умолчанию — каждые 60 минут) собирает снимки (snapshots) состояния экземпляра. Каждый снимок включает в себя тысячи показателей, таких как:

  • Использование центрального процессора (CPU) и памяти (SGA, PGA);
  • Статистика ввода-вывода (I/O) для файлов данных, журналов повторного выполнения и управляющих файлов;
  • Активность сеансов и ожидания (wait events);
  • План выполнения SQL-запросов и их статистика (количество выполнений, время выполнения, количество строк и т.д.);
  • Данные о блокировках и конкуренции за ресурсы.

Снимки хранятся в таблицах схемы SYSAUX (начиная с Oracle 10g) и автоматически удаляются по истечении срока хранения (по умолчанию — 8 дней). Пользователь может изменять интервал сбора и глубину хранения через параметры инициализации awr_snapshot_interval и awr_retention.

Процесс сбора данных

Сбор данных выполняется фоновым процессом MMON (Manageability Monitor), который запускается автоматически при старте экземпляра. MMON также отвечает за выполнение ADDM-анализа и отправку уведомлений о проблемах. При необходимости администратор может вручную создать снимок с помощью команды DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT.

Классификация отчётов

AWR предоставляет несколько типов отчётов, которые можно генерировать в текстовом или HTML-формате:

  • Отчёт за период (AWR Report) — сравнивает два снимка и показывает изменения ключевых показателей производительности, включая топ-10 SQL-запросов по нагрузке, сегменты с наибольшим I/O и ожидания.
  • Отчёт по SQL-запросам (SQL Report) — детализирует статистику для одного или нескольких конкретных SQL-операторов.
  • Отчёт по сегментам (Segment Report) — показывает использование пространства и активность для таблиц, индексов и других объектов.
  • Отчёт по ожиданиям (Wait Event Report) — группирует события ожидания по категориям и показывает их влияние на общее время отклика.

Применение

AWR используется в следующих сценариях:

  • Диагностика проблем производительности. При возникновении замедлений работы базы данных администратор может сгенерировать отчёт AWR за проблемный период и выявить узкие места (например, чрезмерные ожидания ввода-вывода или неэффективные SQL-запросы).
  • Планирование ресурсов. На основе исторических данных AWR можно прогнозировать рост нагрузки и планировать расширение аппаратных мощностей (CPU, память, дисковое пространство).
  • Оптимизация SQL-запросов. Отчёты AWR позволяют идентифицировать запросы с наибольшим временем выполнения или потреблением ресурсов, после чего разработчик может оптимизировать их структуру или добавить индексы.
  • Сравнение конфигураций. При изменении параметров базы данных или обновлении версии Oracle AWR помогает оценить влияние изменений на производительность.
  • Аудит и отчётность. В крупных организациях AWR-отчёты могут использоваться для ежемесячной отчётности перед руководством или для проверки соответствия SLA (Service Level Agreement).

Интеграция с другими инструментами

AWR тесно связан с другими компонентами Oracle Database Diagnostic Pack:

  • Automatic Database Diagnostic Monitor (ADDM) — автоматически анализирует снимки AWR и выдаёт рекомендации по устранению проблем производительности (например, «увеличить размер буферного кэша» или «добавить индекс»).
  • Active Session History (ASH) — собирает данные о текущих сеансах с интервалом в 1 секунду, что позволяет детализировать проблемы, выявленные AWR, на уровне отдельных запросов.
  • SQL Tuning Advisor — использует статистику из AWR для автоматической генерации рекомендаций по оптимизации SQL-запросов.

Ограничения и критика

Несмотря на широкое распространение, AWR имеет ряд недостатков:

  • Лицензирование. Для использования AWR требуется приобретение лицензии на Oracle Database Diagnostic Pack, что увеличивает стоимость владения системой. В версии Oracle Database Standard Edition AWR недоступен (доступен только упрощённый Statspack).
  • Накладные расходы. Сбор снимков каждые 60 минут создаёт дополнительную нагрузку на систему, особенно в средах с высокой транзакционной активностью. В некоторых случаях рекомендуется увеличить интервал до 2–4 часов.
  • Ограниченная глубина анализа. AWR не предоставляет данных о загрузке на уровне операционной системы или сети, поэтому для полной диагностики требуется интеграция с внешними мониторинговыми решениями (например, Enterprise Manager Cloud Control или сторонними продуктами).
  • Сложность интерпретации. Отчёты AWR содержат большое количество метрик, и для их корректного анализа требуется опытный администратор баз данных. Новички могут ошибочно интерпретировать данные, что приведёт к неверным выводам.

Интересные факты

  • По умолчанию AWR хранит снимки в течение 8 дней, но этот срок можно увеличить до 365 дней, однако это может привести к значительному росту табличного пространства SYSAUX.
  • В Oracle Database 12c и более поздних версиях появилась возможность экспорта снимков AWR из одной базы данных в другую для сравнительного анализа.
  • AWR используется не только в on-premise развёртываниях, но и в облачных сервисах Oracle (Oracle Cloud Infrastructure, Autonomous Database), где он автоматически управляется сервисом.

Источники

  • Oracle Database Performance Tuning Guide, 10g Release 2 (10.2)
  • Oracle Database Concepts, 11g Release 2 (11.2)
  • Oracle Database Administrator’s Guide, 12c Release 1 (12.1)
  • Документация Oracle: «Automatic Workload Repository Overview» (2023)
  • Статья «AWR: The Automatic Workload Repository» на сайте Oracle Technology Network

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →