Oracle 数据库如何trace 执行的SQL statement
Q. Oracle 数据库如何trace执行的SQL statement
1. 开启trace
方法(1) : 执行SQL语句
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
SQL> alter system set EVENTS '10046 trace name context off';
3. trace相关的几个参数
- MAX_DUMP_FILE_SIZE dump 文件大小
- USER_DUMP_DEST dump 文件路径
可以使用下面语句参看:
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文件,使用方法为:
$ 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/