Общее количество выполненных запросов Oracle со счетчиком и временем выполнения (для программы Java) - PullRequest
1 голос
/ 22 мая 2011

Я хочу узнать общее количество выполненных запросов с их количеством и временем выполнения для моей Java-программы (у меня нет исходного кода).

Я планирую написать PL / SQL, который объединит gv$session и gv$sql, запись выходных данных в одну из таблиц.После завершения выполнения программы я буду запрашивать таблицу для получения более подробной информации.

Но я хотел узнать, есть ли у Oracle утилита по умолчанию для получения аналогичного отчета?Я смотрел на отчеты AWR для Oracle, но не получил легкую документацию для этого.

1 Ответ

2 голосов
/ 23 мая 2011

Я бы пошел с

DBMS_SESSION.SESSION_TRACE_ENABLE (waits => true);

На сервере базы данных вы получите сгенерированный файл (в каталоге, указанном user_dump_dest в параметре v $), который будет содержать трассировку.

Запустите эту трассировку с помощью утилиты tkprof (утилита базы данных на сервере БД), и она выдаст вам все SQL-запросы, сколько раз они были выполнены, сколько времени они потратили и сколько времени было потрачено. на.

Недостаток v $ sql (или gv $ sql для RAC) состоит в том, что (1) некоторые запросы могут быть устаревшими, особенно для длительного процесса, и (2) потенциальное «вмешательство» в другие сеансы, если вы не т эксклюзивный доступ к БД.

Если вы не хотите возиться с файлами, из v $ session вы также можете перейти к v $ sessstat и v $ session_event, которые могут предложить некоторые полезные лакомые кусочки.

select event, sum(round(time_waited/(100*60),2)) time_mins, wait_class
from v$session_event
where sid in (221)
group by event, wait_class
order by 2 desc;

select sid, name, value from v$sesstat s 
  join v$statname n on n.statistic# = s.statistic#
where s.sid in (221)
and name in ('consistent gets','sorts (rows)','execute count',
        'parse count (total)','user calls','user commits','user rollbacks'
order by value desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...