Oracle Sql trace使用介绍



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. 查看文件即可,你会发现很多有趣的东西.