首页 > 数据库 > Oracle > oracle中用户级自跟踪
学习相关知识,自己做的小实验。
[@more@]oracle中用户级自跟踪
OS:WINXP & SP2
DB: ORACLE V9.2.0.1.0
用户跟踪文件的路径:%ORACLE_BASE%AdminSIDudump
1、用户启动自跟踪
SQL> alter session set sql_trace=true;
会话已更改。
2、检查当前session的SID,SERIAL#
SQL> select sid,serial#,username from v$session;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 7 XMU
已选择9行。
确认当前session的sid,serial#为(9,7)
3、开始测试操作
SQL> drop table k;
表已丢弃。
SQL> commit;
提交完成。
SQL> create table k(a int);
表已创建。
SQL> insert into k values(1);
已创建 1 行。
SQL> commit;
提交完成。
4、停止跟踪
SQL> alter session set sql_trace=false;
会话已更改。
4、检查trace文件
检查udump目录,发现xujc_ora_3944.trc文件,文件时间吻合。
检查该trace文件,确实包含相关操作的内容。
5、用户trace文件的命名规则如何?
用户的跟踪文件生成在 admin{SID}udump{SID} _ora_{ SPID}.trc 中,spid从下面语句得到
--SELECT b.name bkpr, s.username, p.spid,s.sid,s.serial# FROM v$bgprocess b, v$session s, v$process p WHERE p.addr = b.paddr(+) AND p.addr = s.paddr and s.username=user;
select b.spid,a.sid,a.serial#,a.username from v$session a,v$process b where a.sid=b.pid and a.username='XMU' ;
SQL> select b.spid,a.sid,a.serial#,a.username from v$session a,v$process b where a.sid=b.pid and a.username='XMU' ;
SPID SID SERIAL# USERNAME
------------ ---------- ---------- ------------------------------
620 9 7 XMU
3944 12 50 XMU
6、如何阅读用户trace文件?
使用TKPROF工具。
tkprof E:oracleadminxujcudumpxujc_ora_3944.trc E:oracleadminxujcudumpxujc_ora_3944.OUT sort=PRSCPU,EXECNT,EXECPU aggregate=NO record=E:oracleadminxujcudumpxujc_ora_3944_REC.SQL
该命令将分析此trace文件,并输出2个分析文件:xujc_ora_3944.OUT和xujc_ora_3944_REC.SQL,其中xujc_ora_3944.OUT文件根据Sort options: prscpu execnt execpu 选项输出,而xujc_ora_3944_REC.SQL则重现了该跟踪文件所记录的SQL操作。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/59630/viewspace-807828/ ,如需转载,请注明出处,否则将追究法律责任。