Найти количество раз, когда процедура вызывается с использованием другой процедуры - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть две процедуры A и B. Процедура A выполняет определенные задачи. Процедура B должна отслеживать, сколько раз процедура A вызывается за день.

Как этого добиться?

Ответы [ 3 ]

1 голос
/ 12 февраля 2010

вставить строку в таблицу журнала.

1 голос
/ 12 февраля 2010

Oracle не отслеживает подобные вещи по умолчанию, но если вы просто хотите записать некоторую простую информацию, включите встроенную функциональность AUDIT:

AUDIT EXECUTE PROCEDURE BY ACCESS;

Вы можете просмотреть доступы в представлении dba_audit_trail. Узнать больше .

Если по какой-то причине вы не хотите использовать контрольный журнал - скажем, вы хотите получить больше информации - тогда вам нужно будет использовать свой собственный механизм ведения журнала. Это хорошее применение для прагмы AUTONOMOUS TRANSACTION. Только будьте осторожны, чтобы написание записей журнала не оказало чрезмерного влияния на производительность вашего приложения.

1012 * редактировать *

Роль процедуры B в вашем вопросе совершенно излишня: либо база данных записывает, как часто выполняется процедура A, либо A записывает свои собственные записи трассировки. Если B не является упакованным запросом в журнале (однако реализован)?

1 голос
/ 12 февраля 2010

Добавить утверждение к процедуре:

update statistics_table
   set proc_a_count = proc_a_count + 1;

Конечно, вам нужно создать подходящую таблицу для хранения счетчика и инициализировать его нулем в поле.

...