Commit 46b3e7

2025-12-02 12:23:15 feagor: -/-
/dev/null .. oracle/awr и ash/AWR - как снять вручную.md
@@ 0,0 1,55 @@
+ ## AWR - как снять вручную
+
+ #### Снятие скриптом
+
+ При отсутствии Enterprise Manager можно легко снять AWR отчеты. Всё, что для этого понадобится — доступ к базе.
+ Выполняем следующий запрос:
+ ```oraclesql
+ --Поиск DB_ID и всех точек
+ select * from DBA_HIST_SNAPSHOT d order by d.begin_interval_time desc
+ ```
+ Из этого запроса мы узнаем ID базы и номер инстанса. Так же видим все последние снапшоты. Если надо выбрать отчет за какое-то время, можно воспользоваться существующими точками.
+ Если же надо построить отчет по происходящему, создаем новые точки:
+ ```oraclesql
+ --создание новой точки
+ declare
+ v_num number;
+ begin
+ v_num := dbms_workload_repository.create_snapshot();
+ dbms_output.put_line(v_num);
+ end;
+ ```
+
+ В результате выполнения этого кода получаем созданый снапшот. Результат — ID снапшота. Затем проводим нужные эксперименты и создаем еще один снапшот. Между ними и будем строить отчет.
+ Для построения отчета используем следующий запрос:
+ ```oraclesql
+ select * from table (dbms_workload_repository.awr_report_html (/*db_id*/2388135020, /*INSTANCE_NUMBER*/1, /*SNAP_ID 1*/19427, /*SNAP_ID 2*/19428))
+ ```
+ Копируем результат выполнения в файл с расширением html, счастье есть.
+
+ #### Снятие через функцию
+
+ Вариант через функцию(на выходе получаем CLOB, можем просматривать родным PL SQL DEVELOPERа просмотрщиком
+ ```oraclesql
+ --Функция создания AWR
+ create or replace function AWR_HTML(in_begin_point in number, in_end_point in number) return clob is
+ ret_html clob;
+ db_id number;
+ begin
+ select dbid into db_id from v$database;
+ for i in (
+ select output
+ from table(dbms_workload_repository.awr_report_html(db_id, 1, in_begin_point, in_end_point))
+ )
+ loop
+ ret_html:=ret_html||i.output;
+ end loop;
+ return(ret_html);
+ end AWR_HTML;
+ ```
+
+ ```oraclesql
+ select * from DBA_HIST_SNAPSHOT d order by d.begin_interval_time desc;
+ select awr_html(7031, 7033) from dual
+ ```
+ Сохраняем сразу в HTML виде
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9