5

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

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

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

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

4

1 回答 1

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;

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

于 2013-11-04T15:49:15.480 回答