PLSQL Developer 运用Profiler 分析存储过程性能

时间:2020-12-11 04:56:46

  最近应公司需要,需要编写ORACLE存储过程。本人新手,在完成存储过程的编写后,感觉需要对存储过程中各个语句的执行时间进行分析,以便

对整个存储过程进行优化。

  由于用的是PLSQL Developer 客户端工具,而网上大多介绍的是通过手工方法应用Profiler,使用相对比较烦杂,大致是通过命令行,以SYS用户

首先创建dbms_profiler包,而且还要创建一个用于存放跟踪信息的用户,及其prof表和序列的同义词,最后用profiler用户创建prof表和序列,并赋权。

这里对这种方法就不做介绍了。(如有需要,将会另写一篇关于此方法的介绍)

下面将详细介绍在PLSQL DEVELOPER 应用Profiler:

1、右键存储过程,单击测试

PLSQL Developer 运用Profiler 分析存储过程性能

2、单击测试后,会弹出一个测试窗口,如下图,此时点击"创建概览图报告"

PLSQL Developer 运用Profiler 分析存储过程性能

3、点击"执行" 或者  F8 执行存储过程

PLSQL Developer 运用Profiler 分析存储过程性能

4、执行完后 点击"测试窗口" 上的 概览图 会出现如下:

PLSQL Developer 运用Profiler 分析存储过程性能

每列的详细意义如下:
unit        --单元名称,即执行的存储过程,包括其调用的过程
line        --代码行号
total time    --此行执行时间(颜色长度表示本行代码的执行时间与最长代码执行时间的百分比图)
occurrences    --此行执行次数
text        --对应代码行,对于加密的代码,将不能显示
Average time    —平均运行时间
maximum time    --最大运行时间
minimum time    --最小运行时间(以上三个时间默认不显示,可以通过配置对话框选择显示,参加4.4)

列表中显示的源代码只显示一行,如果要定位则可以在对应的行中打开右键,选择[Go to unit line] ,这样就会直接跳到对应的源代码位置。

Profiler面板的工具栏说明:
a、显示配置对话框
b、刷新
c、删除当前运行号的数据
d、Run 显示当前的系统的所有Profiler列表,缺省为当前的跟踪
e、Unit 显示本次跟踪的单元列表信息(执行时间),缺省为所有单元的执行时间

5.4、Profiler配置对话框

PLSQL Developer 运用Profiler 分析存储过程性能

这样 就可以对存储过程做一个很好的分析,从而对其进行优化。

PLSQL Developer 运用Profiler 分析存储过程性能
PLSQL Developer 运用Profiler 分析存储过程性能