查找使用其他过程调用过程的次数

时间:2010-02-12 06:20:50

标签: oracle stored-procedures plsql

我有两个程序A和B.程序A执行某些任务。程序B必须监视一天中调用过程A的次数。

如何实现这一目标?

3 个答案:

答案 0 :(得分:1)

在程序中添加一条陈述:

update statistics_table
   set proc_a_count = proc_a_count + 1;

当然,您必须创建一个合适的表来保存计数并在字段中将其初始化为零。

答案 1 :(得分:1)

在日志表中插入一行。

答案 2 :(得分:1)

默认情况下,Oracle不跟踪此类事情,但如果您只想记录一些简单信息,请打开内置的AUDIT功能:

AUDIT EXECUTE PROCEDURE BY ACCESS;

您可以在视图dba_audit_trail中查看访问权限。 Find out more

如果由于某种原因您不想使用审计跟踪 - 假设您想要捕获更多信息 - 那么您将需要使用自己的日志记录机制。这对于AUTONOMOUS TRANSACTION pragma来说是一个很好的用法。请注意,编写日志记录不会对应用程序的性能产生不适当的影响。

修改

程序B在您的问题中的作用完全是多余的:数据库记录程序A运行的频率,或者A写入自己的跟踪记录。除非B是日志的打包查询(无论如何实现)?