问题描述
嗨,
请您帮助跟踪DB中存储过程的执行。
一个遗留数据库正在运行,应用程序所有者想知道实际使用了多少个SP。他正在寻找关于SP的使用报告
我们已经尝试使用SQL V $ Session (PLSQL_OBJECT_ID,用于SP ID和使用SP时的logon_time的PLSQL_SUBPROGRAM_ID) 和DBA对象 (以映射SP ID SP名称和SP所有者) 来获取数据。我们计划收集这些数据70天,通过作业以1分钟的间隔运行SQL
上述方法的问题是,任何在亚秒内运行的SP都不会被记录下来。
请建议使用V $ 视图跟踪使用情况的更好方法,审计不是一个选项
问候
请您帮助跟踪DB中存储过程的执行。
一个遗留数据库正在运行,应用程序所有者想知道实际使用了多少个SP。他正在寻找关于SP的使用报告
我们已经尝试使用SQL V $ Session (PLSQL_OBJECT_ID,用于SP ID和使用SP时的logon_time的PLSQL_SUBPROGRAM_ID) 和DBA对象 (以映射SP ID SP名称和SP所有者) 来获取数据。我们计划收集这些数据70天,通过作业以1分钟的间隔运行SQL
上述方法的问题是,任何在亚秒内运行的SP都不会被记录下来。
请建议使用V $ 视图跟踪使用情况的更好方法,审计不是一个选项
问候
专家解答
Sooo ..... 您想审核程序的执行情况。不使用数据库审计?!
说真的,这是正确的解决方案。
启用执行过程的审核将向您确切显示使用的内容:
因为这正是你想做的,所以你需要给出一些不使用它的确凿理由!依靠v $ 视图注定会失败。
说真的,这是正确的解决方案。
启用执行过程的审核将向您确切显示使用的内容:
audit execute procedure; conn chris/chris create or replace procedure p1 ( p int ) as begin dbms_session.sleep ( p ); end p1; / create or replace procedure p2 ( p int ) as begin p1 ( p ) ; end p2; / exec p2 ( 5 ); select distinct owner, obj_name from dba_audit_trail where timestamp > sysdate - 1/1440; OWNER OBJ_NAME SYS DBMS_SESSION CHRIS P2 SYS DBMS_STANDARD CHRIS P1 SYS DBMS_OUTPUT
因为这正是你想做的,所以你需要给出一些不使用它的确凿理由!依靠v $ 视图注定会失败。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




