我在 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”出现,我需要将它至少分解成被调用的过程和函数,以及它们占用的时间百分比。
最佳答案
PL/SQL 层次分析器,记录在案 here , 其实很容易运行,前提是你有必要的权限。
基本上你只需要像这样运行一个 PL/SQL 块:
begin
dbms_hprof.start_profiling('PLSHPROF_DIR', 'test.trc');
your_top_level_procedure;
dbms_hprof.stop_profiling;
end;
plshprof
实用程序将从原始分析器输出文件(上例中的 test.trc
)生成 HTML 报告。
关于oracle - 如何轻松分析 Oracle 包执行的性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19771192/