1.show parameter sql_trace
value是false表示系统当前不会产生trace文件
2.使产生trace文件
alter session set sql_trace = true;
3.执行一些sql语句后.停止产生trace文件
alter session set sql_trace=false;
4.查看trace文件路径和名称
select value from v$parameter where name='user_dump_dest'
D:DataBaseoracleInstalldiag dbmsorclorcl race
select username,sid,serial# from v$session where username='GUAN';
select 'orcl_ora_'||spid||'.trc' from v$process where addr = (select paddr from v$session where sid=143);
5.格式化trace文件然后输出
tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ]
tracefile:你要分析的trace文件
outputfile:格式化后的文件
explain=user/password@connectstring
table=schema.tablename
这两个参数是一起使用的,通过连接数据库对在trace文件中出现的每条sql语句查看执行计划,并将之输出到outputfile中
该table必须是数据库中不存在的,如果存在会报错
print=n:只列出最初N个sql执行语句
insert=filename:会产生一个sql文件,运行此文件可将收集到的数据insert到数据库表中
sys=no:过滤掉由sys执行的语句
record=filename:可将sql语句过滤到指定的文件中去
waits=yes|no:是否统计任何等待事件
aggregate=yes|no:是否将相同sql语句的执行信息合计起来,默认为yes
sort= option:设置排序选项,