如何轻松分析Oracle软件包的性能问题?

Pau*_*rns 5 oracle plsql oracle11g

我在11g R2 DB中有一个pl/sql包,它有相当多的相关程序和功能.我执行一个顶级函数,它做了很多东西.它目前处理<每秒10行.我想提高性能,但我不确定要关注哪些例程.

对于Oracle的"PL/SQL层次分析器(DBMS_HPROF)"来说这似乎是一个很好的工作.作为一个懒惰的人,我希望SQLDeveloper v3.2.20.09或企业管理器能够做到我想要的点和点击界面.我找不到这个.

是否有一种"简单"的方法来分析过程/包中的实际PL/SQL代码?

我使用Enterprise Manager的"热门活动"部分优化了包中的查询,查看了花费很长时间的所有查询.现在我只有一个"执行PL/SQL"出现,我需要将其分解为至少被调用的过程和函数,以及它们占用的时间百分比.

Mar*_*lli 4

此处记录的 PL/SQL Hierarchical Profiler实际上非常容易运行(假设您拥有必要的权限)。

基本上你只需要像这样运行一个 PL/SQL 块:

begin
   dbms_hprof.start_profiling('PLSHPROF_DIR', 'test.trc');
   your_top_level_procedure;
   dbms_hprof.stop_profiling;
end;
Run Code Online (Sandbox Code Playgroud)

plshprof实用程序将从原始探查器输出文件(test.trc在上面的示例中)生成 HTML 报告。