暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 存储过程的使用分析

ASKTOM 2019-06-13
166

问题描述

嗨,

请您帮助跟踪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 ..... 您想审核程序的执行情况。不使用数据库审计?!

说真的,这是正确的解决方案。

启用执行过程的审核将向您确切显示使用的内容:

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论