2010-04-30 3 views
0

Я работаю над хранимой процедурой. Внутри этого есть много вызовов других хранимых процедур. Их куча.Оракул для каждой хранимой процедуры время выполнения

Мне было интересно, есть ли возможность иметь время выполнения каждой хранимой процедуры, каждая функция (с начальным и конечным временем, или что-то в этом роде).

Идея состоит в том, что мне нужно ее оптимизировать, и я должен касаться каждой части, и поскольку я не уверен, где находится самое длинное время выполнения, это немного сложно. И после модификации я хотел бы увидеть процесс отверстия, если он короче или нет. Если я вызываю процедуру из unix, используя sql plus, у меня нет журнала. Если я назову это из TOAD, он заблокирован до конца.

Любая идея?

Я не дБА, поэтому у меня мало прав на базу данных, я просто обычный пользователь.

ответ

0

Я видел процедуру регистрации, которая была независимой от транзакции (PRAGMA AUTONOMOUS_TRANSACTION;) и была вызвана из основной процедуры. Он сохраняется в funtime_log таблице:

  • текущее время (настенные часы),
  • порядковый номер,
  • нить (сессия) идентификатор,
  • и текст (название процедуры, например.)

Таким образом вы можете выбрать все события из одного сеанса, упорядоченного по порядковому номеру, и посмотреть, какое время отличается от большинства. В производственной среде вы можете просто сделать эту функцию недействительной, чтобы отключить ведение журнала.

3

Если вы используете Oracle 11g, вы должны проверить the built-in Hierarchical Profiler. Это делает практически то, что вы предлагаете сделать. К сожалению, права на DBMS_HPROF по умолчанию не предоставляются PUBLIC, поэтому вам нужно попросить своего администратора базы данных предоставить вам привилегию EXECUTE. Поскольку это поможет вам в настройке, я уверен, что они будут слишком счастливы соблюдать.

+0

Да, было бы полезно получить с вашим DBA и использовать DBMS_HPROF. Программа анализа выходных файлов (plshprof) также может различать два пробега и рассказать вам, что получилось быстрее и что стало медленнее - важно для определения того, где вы стоите после изменений настройки. –

Смежные вопросы