Commit 21f6db

2025-12-02 12:54:33 feagor: -/-
oracle/awr и ash/AWR - как снять вручную.md ..
@@ 4,13 4,13 @@
При отсутствии Enterprise Manager можно легко снять AWR отчеты. Всё, что для этого понадобится — доступ к базе.
Выполняем следующий запрос:
- ```oraclesql
+ ```oraclesql=
--Поиск DB_ID и всех точек
select * from DBA_HIST_SNAPSHOT d order by d.begin_interval_time desc
```
Из этого запроса мы узнаем ID базы и номер инстанса. Так же видим все последние снапшоты. Если надо выбрать отчет за какое-то время, можно воспользоваться существующими точками.
Если же надо построить отчет по происходящему, создаем новые точки:
- ```oraclesql
+ ```oraclesql=
--создание новой точки
declare
v_num number;
@@ 22,7 22,7 @@
В результате выполнения этого кода получаем созданый снапшот. Результат — ID снапшота. Затем проводим нужные эксперименты и создаем еще один снапшот. Между ними и будем строить отчет.
Для построения отчета используем следующий запрос:
- ```oraclesql
+ ```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, счастье есть.
@@ 30,7 30,7 @@
#### Снятие через функцию
Вариант через функцию(на выходе получаем CLOB, можем просматривать родным PL SQL DEVELOPERа просмотрщиком
- ```oraclesql
+ ```oraclesql=
--Функция создания AWR
create or replace function AWR_HTML(in_begin_point in number, in_end_point in number) return clob is
ret_html clob;
@@ 48,7 48,7 @@
end AWR_HTML;
```
- ```oraclesql
+ ```oraclesql=
select * from DBA_HIST_SNAPSHOT d order by d.begin_interval_time desc;
select awr_html(7031, 7033) from dual
```
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