Oracle 数据库如何trace 执行的SQL statement

Q. Oracle 数据库如何trace执行的SQL statement

1. 开启trace

方法(1) : 执行SQL语句

1
2
SQL> alter system set sql_trace = true;
SQL> alter system SET EVENTS '10046 trace name context forever, level 12';

方法(2) : 修改init.ora 配置文件

还可以修改init.ora 文件添加 event=”10046 trace name context forever,level 12” 来达到目的,
修改以后需要重新启动数据库。

2. 关闭 trace

1
SQL> alter system set EVENTS '10046 trace name context off';

3. trace相关的几个参数

  • MAX_DUMP_FILE_SIZE dump 文件大小
  • USER_DUMP_DEST dump 文件路径

可以使用下面语句参看:

1
2
3
4
5
6
7
8
9
10
11
12
SQL> show parameter user_dump_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/diag/rdbms/orcl/orcl/trace


SQL> show parameter max_dump_file_size;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_dump_file_size string unlimited

4. trc 文件分析

方法(1)

可以使用trc2sql.pl 来提取trc文件中的SQL语句

下载地址: https://gist.github.com/henices/5097678

方法(2)

oracle提供tkprof 命令可以解析trc文件,使用方法为:

1
$ tkprof tracefile outputfile

参考链接

参考链接: http://www.eygle.com/case/Use.sql_trace.to.Diagnose.database.htm


Oracle 数据库如何trace 执行的SQL statement
https://usmacd.com/cn/oracle_statement_trace/
作者
henices
发布于
2013年7月4日
许可协议