如何轻松分析 Oracle 软件包的执行是否存在性能问题?



我在11g R2 DB中有一个pl/sql包,其中包含相当数量的相关过程和函数。我执行一个顶级函数,它做了很多事情。它当前每秒处理 10 行<。我想提高性能,但我不确定要关注哪个例程。

对于Oracle的"PL/SQL分层分析器(DBMS_HPROF)"来说,这似乎是一个很好的工作 作为一个懒惰的人,我希望SQLDeveloper v3.2.20.09或Enterprise Manager能够通过点击界面做我想做的事情。我找不到这个。

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

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

此处记录的PL/SQL分层探查器实际上非常容易运行,假设您具有必要的权限。

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

begin
   dbms_hprof.start_profiling('PLSHPROF_DIR', 'test.trc');
   your_top_level_procedure;
   dbms_hprof.stop_profiling;
end;

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

相关内容

最新更新