Ну, на первом этапе проще это воспринимать как набор, внутренних по отношению в Oracle, счетчиков (perfomance counters). Чтобы понять нужная ли это вам тулза - поищите в google скриншоты - думаю станет более - меннее понятно.
Ссылки на официальную документацию вам дал ZVV. Согласен, что читать много, но в общем то, вся документация Oracle страдает некоторой монструозностью. А точнее говоря, не хватает документов в стиле Quick Start.
Ну, если коротко, то так:
1. Устанавливаем параметр STATISTICS_LEVEL в значение TYPICAL. Хотя, кажется он по умоланию такой. Но лучше проверить:
X++:
select statistics_name, activation_level from v$statistics_level;
2. Собственно результатом работы этой тулзы являются две сущности - AWR Snapshots и In-memory statistics.
3. Snapshots (снимки? не знаю рускоязычного аналога) - это просто набор характеристик вашей системы собранный в определенный момент времени и сохраненный в системных таблицах. Их можно собирать как вручную, так и автоматически.
Автоматически - это как то так:
X++:
SQL> BEGIN
2 dbms_workload_repository.modify_snapshot_settings (
3 retention => 21600,
4 interval => 30);
5 END;
SQL> /
PL/SQL procedure successfully completed.
SQL> SELECT * from dba_hist_wr_control;
Я не разжовываю параметры - их все в документации найти можно.
Ручками - это так:
X++:
SQL> SELECT sys.dbms_workload_repository.create_snapshot() FROM dual;
SYS.DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT()
----------------------------------------------
453
SQL> SELECT snap_id id, begin_interval_time,
2 end_interval_time
3 FROM dba_hist_snapshot
4 WHERE snap_id > 450
SQL> /
ID BEGIN_INTERVAL_TIME END_INTERVAL_TIME
--- ------------------------- -------------------------
451 ....
452 ....
453 ....
SQL> EXEC dbms_workload_repository.drop_snapshot_range -
> (200,250);
SQL> BEGIN
2 dbms_workload_repository.create_baseline (
3 start_snap_id => 426,
4 end_snap_id => 435,
5 baseline_name => 'ONLINE PEAK');
6 END;
7 /
PL/SQL procedure successfully completed.
SQL> SELECT baseline_name, start_snap_time, end_snap_time FROM dba_hist_baseline;
SQL> EXEC dbms_workload_repository.drop_baseline -
> ('ONLINE PEAK');
Собранные данные можно посмотреть во view V$*Metric* и DBA_HIST_* но их там слишком много и я в них не разбирался - смотрю с помощью Enterprise Manager. Кстати, если кто-то посоветует альтернативную тулзу для визуализации собранных данных - буду благодарен.
Еще есть Automatic Database Diagnostic Monitor, как правильно заметил ZVV, который на основе собранных данных пытается давать советы, но с ним я не очень разбирался. Часть советов показались мне банальными и очевидными, а часть спорными и сомнительными
Опять же проще работать через EM; если нет возможности - из консоли через системные вьюхи dba_advisor_*.
Ну и самим "советчиком" можно рулить из консоли:
X++:
SQL> SELECT parameter_name, parameter_value
2 FROM dba_advisor_def_parameters
3 WHERE advisor_name = 'ADDM';
SQL> EXEC dbms_advisor.set_default_task_parameter ( -
'ADDM', 'DBIO_EXPECTED', 16000);
PL/SQL procedure successfully completed.
Еще там можно настроить систему alert-ов, чтобы он сигнализировал (кажется, на email), когда какой-либо параметр превышает установленный порог.