Вступление
Automatic Database Diagnostic Monitor (ADDM) анализирует данные в Automatic Workload Repository (AWR) для обнаружения и предсказания потенциальных узких мест. Для каждой обнаруженной проблемы определяется источник и предоставляются рекомендации для устранения. Задачи ADDM анализ, поиск и рекомендации сохраняются в базе данных каждый раз, когда получен снимок AWR, определяемый параметром STATISTICS_LEVEL если он выставлен в значение TYPICAL или ALL. Анализ ADDM включает в себя:
- Загрузку процессора
- Использование памяти
- Использование ресурсов SQL
- Использование ресурсов PL/SQL и Java
- Проблемы RAC
- Проблемы приложений
- Проблемы конфигурации базы данных
- Проблемы параллелизма
- Конфликты объектов
Есть несколько путей получения отчетов из ADDM, которые рассмотрим чуть позже, но все они имеют одинаковый формат. Составляется список найденных проблем, отсортированный по влиянию на производительность базы данных, сразу же следуют рекомендации по разрешению проблемы и симптомы, которые позволили сделать такой вывод. Далее пример такого отчета с тестового экземпляра базы данных:
FINDING 1: 59% impact (944 seconds)
-----------------------------------
The buffer cache was undersized causing significant additional read I/O.
RECOMMENDATION 1: DB Configuration, 59% benefit (944 seconds)
ACTION: Increase SGA target size by increasing the value of parameter
"sga_target" by 28 M.
SYMPTOMS THAT LED TO THE FINDING:
Wait class "User I/O" was consuming significant database time. (83%
impact [1336 seconds])
Рекомендации могут содержать:
- Изменения аппаратного обеспечения
- Изменения конфигурации базы данных
- Изменения схемы
- Изменения приложения
- Использование других средств диагностики
Анализ производительности ввода/вывода определяется параметром DBIO_EXPECTED который должен быть выставлен в среднее время (в микросекундах) требуемое для чтения одного блока базы данных с диска. Обычно значение в интервале от 5000 до 20000 микросекунд. Параметр может быть выставлен командой:
EXECUTE DBMS_ADVISOR.set_default_task_parameter('ADDM', 'DBIO_EXPECTED', 8000);
Enterprise Manager
Наиболее вероятное место просмотра отчетов ADDM, это Enterprise Manager. В секции "Home" закладка "Performance Analysis" показываются первые пять найденных проблем, во время последнего запуска задачи ADDM.
Индивидуальный отчет может быть получен кликом на ссылку "Advisor Central" и затем "ADDM". Страница результатов позволит выбрать начальный и конечный снимки, создать задачу ADDM и показать результаты в виде отчета кликом нескольких ссылок.
Скрипт addmrpt.sql
Скрипт addmrpt.sql может быть использован для создания ADDM отчетов изSQL*Plus. Скрипт вызывается:
-- UNIX
CONN SYS / AS SYSDBA
@/u01/app/oracle/product/10.1.0/db_1/rdbms/admin/addmrpt.sql
-- Windows
CONN SYS / AS SYSDBA
@d:\oracle\product\10.1.0\db_1\rdbms\admin\addmrpt.sql
Он просматривает все доступные снимки и указывает вам начальный и конечный снимки вместе с названием отчета.
DBMS_ADVISOR
Пакет DBMS_ADVISOR может быть использован для создания и выполнения ряда задач, среди которых есть и задачи ADDM. Следующий пример показывает как пакет может быть использован для создания, выполнения и показа типичного ADDM отчета:
BEGIN
-- Create an ADDM task.
DBMS_ADVISOR.create_task (
advisor_name => 'ADDM',
task_name => '970_1032_AWR_SNAPSHOT',
task_desc => 'Advisor for snapshots 970 to 1032.');
-- Set the start and end snapshots.
DBMS_ADVISOR.set_task_parameter (
task_name => '970_1032_AWR_SNAPSHOT',
parameter => 'START_SNAPSHOT',
value => 970);
DBMS_ADVISOR.set_task_parameter (
task_name => '970_1032_AWR_SNAPSHOT',
parameter => 'END_SNAPSHOT',
value => 1032);
-- Execute the task.
DBMS_ADVISOR.execute_task(task_name => '970_1032_AWR_SNAPSHOT');
END;
/
-- Display the report.
SET LONG 100000
SET PAGESIZE 50000
SELECT DBMS_ADVISOR.get_task_report('970_1032_AWR_SNAPSHOT') AS report
FROM dual;
SET PAGESIZE 24
Значение команды SET LONG указывает насколько полным можно будет увидеть отчет. Релевантные снимки AWR могут быть идентифицированы использованием представления DBA_HIST_SNAPSHOT.
Связанные представления
Следующие представления могут быть использованы для получения отчетов без использования Enterprise Manager или функции GET_TASK_REPORT:
- DBA_ADVISOR_TASKS - Основная информация о существующих задачах
- DBA_ADVISOR_LOG - Статусная информация о существующих задачах
- DBA_ADVISOR_FINDINGS - Полученные данные для существующих задач
- DBA_ADVISOR_RECOMMENDATIONS - Реккомендации по проблемам найденным существующими задачами
Дополнительная информация
Дополнительную информацию можно получить на сайте Oracle и в документации по:
Automatic Performance Diagnostics
DBMS_ADVISOR