Oracle Sql trace使用介绍。
Oracle提供sql_trace的功能可以用于跟踪Oracle数据库的后台递归操作.
通过跟踪文件,我们可以找到问题的所在.这是Oracle提供的一款非常实用的工具,下面我简要介绍一下操作步骤(以本地数据库为例):
1. 以sys用户身份登陆数据库.
SQL> conn sys/yangjuqi as sysdba;
2. 查询v$session视图,获取进程信息 。(以yangjuqi用户重新打开一个pl/sql窗口,这样在查询中就会出现下面的效果)
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 45 YANGJUQI
10 49 SYS
12 78 SYS
13 32 YANGJUQI
12 行 已选择
3. 启动相关进程的SQL_trace(注意跟上面查询的关系)
SQL> exec dbms_system.set_sql_trace_in_session(9,45,true);
PL/SQL 过程被成功完成
SQL> exec dbms_system.set_sql_trace_in_session(13,32,true);
PL/SQL 过程被成功完成
4. 手动运行sql语句(在以yangjuqi用户打开的窗口中执行sql)
SQL> select count(1) from t_user;
COUNT(1)
———-
5
SQL> select max(t.userage) from t_user t;
MAX(T.USERAGE)
————–
29
5. 关闭SQL_trace
SQL> exec dbms_system.set_sql_trace_in_session(9,45,false);
PL/SQL 过程被成功完成
SQL> exec dbms_system.set_sql_trace_in_session(13,32,false);
PL/SQL 过程被成功完成
6. 得到 trace 文件名称及路径
\oracle\admin\ora92\udump\目录下,时间最晚的一个就是,呵呵
7. cmd进入命令行模式,将trace文件转换成txt 文件
tkprof ora92_ora_4032.trc ora92_ora_4032.txt
8. 查看文件即可,你会发现很多有趣的东西.