使用sql跟踪的简单的步骤:
1.设置下面两个参数。
timed_statistics=true(允许在系统中执行跟踪操作)
max_dump_file_size=unlimited(跟踪文件所在路径下能达到的最大值)
2.针对sql*plus会话启动sql跟踪
alter session set sql_trace true;
3.运行需要跟踪的查询
select ename,sal from scott.emp where empno||''=7321;
4.对sql*plus会话停止跟踪
alter session set sql_trace false;
运行完SQL跟踪后,输出文件类似于如下所示
orcl_ora_spid.trc(其中spid是进程的id号,例如:orcl_ora_3386.trc);
生成的文件.trc很难阅读,可以使用tkprof实用程序把生成的跟踪文件转换成可阅读的格式。
例如:
tkprof orcl_ora_3386.trc wlp.prf explain=system/wlp
跟踪文件的输出部分如下:
1.sql语句部分(包含跟踪执行的sql语句,必须是完整语句,包括提示或注释)
2.统计部分(由8列组成,第一类是调用类型:解析(parse),执行(execute)和数据提取(fetch))
其中
count :这种类型的调用次数
cpu:这种类型调用的总的cpu时间。
elapsed:总的消耗时间
disk:物理读数
query:数据缓冲区条目。通常是select
current:数据缓冲区条目。通常是DML
rows:处理的总行数
3.信息部分(分析和执行调用中丢失的库缓存数量信息)
4.行源(row resource)操作部分
5.执行计划