Oracle性能分析工具
PL/SQL跟踪
PL/SQL Hierarchical Profiler (HPROF)
HPROF实例
1 | -- 0. 在ftp上创建目录,或首先确保目录存在 |
文件输出:

从PLHPROF中生成的是plsql虚拟机源代码,难以读懂,一般会再次使用分析器转化成易读的数据。
以下为PLHPROF生成的部分源代码

使用分析器
两种方式
- 第一种:hprof格式化命令
- 第二张:使用
dbmshptab.sql
hprof格式化
命令
1 | plshprof -output gjhprof_test_210121 gjhprof_test_210121.trc |
输出结果

分析报表

总结
- 定义跟踪文件目录并授权
- 开启PLSQL程序跟踪
- 格式化报告
SQL跟踪
ORACLE SQL TRACE (10046)
跟踪文件所在位置
方法1:登陆到数据库服务器上,查找日志文件 alert_PROD.log 的目录,即为trace文件所在目录
方法2:通过命令 show parameter user_dump_dest; 可以看到日志文件所在位置。不适用于修改过路径的情况。
一般路径名
/u01/test/db/12.1.0/admin/TEST_erp1/diag/rdbms/test/TEST/trace
一般格式
$ORACLE_HOME/admin/TEST_erp1/diag/rdbms/test/TEST/trace
方法3:查看当前session生成的trace文件名,然后到数据库服务器中搜索
1 | // 查找trace文件名 |
结果:后缀名为所求,路径部分不一定准确

方法4:对plsql进行跟踪
sid和serial可以从v$session中获取
1 | exec dbms_system.set_sql_trace_in_session(sid,serial#,true); |

执行完毕存储过程后
1 | exec dbms_system.set_sql_trace_in_session(sid,serial#,false); |
启用跟踪
【注意】这里仅修改当前会话设置
开启跟踪
1 | alter session set sql_trace = true; |
然后执行sql语句
1 | SELECT gd.iface_id, |
关闭sql跟踪
1 | alter session set sql_trace = false; |
格式化跟踪文件
使用cp命令复制到根目录
1 | cp /u01/test/db/12.1.0/admin/TEST_erp1/diag/rdbms/test/TEST/trace/TEST_ora_31641.trc /home/oratest |
格式化跟踪文件
使用tkprof命令,如果要查看执行计划,需要提供可以连接到数据库的账号密码
1 | tkprof TEST_ora_31641.trc TEST_ora_31641.txt explain=apps/apps aggregate=yes sys=no waits=yes sort=fchela |