我有两个程序A和B.程序A执行某些任务。程序B必须监视一天中调用过程A的次数。
如何实现这一目标?
答案 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是日志的打包查询(无论如何实现)?