SQL_TRACE相当于10046事件的LEVEL 1 (10046事件包括1,4,8,12四个级别)
包括:输出 APPNAME(应用程序名),PARSING IN CURSOR,PARSE ERROR(SQL解析),EXEC(执行),FETCH(获取数据),UNMAP,SORT UNMAP(排序,临时段),ERROR,STAT(执行计划),XCTEND(事务)等
trace file 在参数user_dump_dest对应的目录下生成,可以在一个session中生成多个trace file
缺省的文件名格式为: sid _ora_ pid _ traceid .trc 注:TRACEID就是你自己定义的标识符,默认是空值!
ALTER SESSION SET SQL_TRACE=TRUE;
ALTER SESSION SET TRACEFILE_IDENTIFIER='mysession';
ALTER SESSION SET SQL_TRACE=FALSE;
ALTER SESSION SET TRACEFILE_IDENTIFIER='';
或者使用 DBMS_SESSION程序包 来开启或关闭sql_trace
SQL> exec DBMS_SESSION.SET_SQL_TRACE (sql_trace boolean);
示例如下:
SQL> show parameter user_dump
NAME TYPE VALUE
----------------- ----------- ------------------------------
user_dump_dest string /u01/diag/rdbms/orcl/orcl/trace
SQL> show parameter trace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_trace integer 0
sec_protocol_error_trace_action string TRACE
sql_trace boolean FALSE
trace_enabled boolean TRUE
tracefile_identifier string
SQL> select value from v$diag_info where name='Default Trace File';--当前session默认的trace文件
VALUE
--------------------------------------------------------
/u01/diag/rdbms/orcl/orcl/trace/orcl_ora_26614.trc
SQL> alter session set tracefile_identifier='mysession';--设置自定义标识符
Session altered.
SQL> select value from v$diag_info where name='Default Trace File';--当前session默认的trace文件
VALUE
-------------------------------------------------------------
/u01/diag/rdbms/orcl/orcl/trace/orcl_ora_26614_mysession.trc
SQL> alter session set sql_trace=true;--打开sql_trace
Session altered.
SQL> select sysdate from dual;--执行语句
SYSDATE
---------
05-APR-16
SQL> alter session set sql_trace=false;--关闭sql_trace
Session altered.
cd到trace目录,查看生成的trace文件
[oracle@silent ~]$ cd /u01/diag/rdbms/orcl/orcl/trace
[oracle@silent trace]$ ll *mysession*
-rw-r----- 1 oracle oinstall 2456 Apr 5 16:24 orcl_ora_26614_mysession.trc
-rw-r----- 1 oracle oinstall 110 Apr 5 16:24 orcl_ora_26614_mysession.trm
使用Oracle自带的一个命令行工具tkprof,将trace文件生成一个易读的文本文件
[oracle@silent trace]$ tkprof orcl_ora_26614_mysession.trc mysession.txt
[oracle@silent trace]$ ll *mysession*
-rw-r--r-- 1 oracle oinstall 5455 Apr 5 16:26 mysession.txt
-rw-r----- 1 oracle oinstall 2456 Apr 5 16:24 orcl_ora_26614_mysession.trc
-rw-r----- 1 oracle oinstall 110 Apr 5 16:24 orcl_ora_26614_mysession.trm
包括:输出 APPNAME(应用程序名),PARSING IN CURSOR,PARSE ERROR(SQL解析),EXEC(执行),FETCH(获取数据),UNMAP,SORT UNMAP(排序,临时段),ERROR,STAT(执行计划),XCTEND(事务)等
trace file 在参数user_dump_dest对应的目录下生成,可以在一个session中生成多个trace file
缺省的文件名格式为: sid _ora_ pid _ traceid .trc 注:TRACEID就是你自己定义的标识符,默认是空值!
ALTER SESSION SET SQL_TRACE=TRUE;
ALTER SESSION SET TRACEFILE_IDENTIFIER='mysession';
ALTER SESSION SET SQL_TRACE=FALSE;
ALTER SESSION SET TRACEFILE_IDENTIFIER='';
或者使用 DBMS_SESSION程序包 来开启或关闭sql_trace
SQL> exec DBMS_SESSION.SET_SQL_TRACE (sql_trace boolean);
示例如下:
SQL> show parameter user_dump
NAME TYPE VALUE
----------------- ----------- ------------------------------
user_dump_dest string /u01/diag/rdbms/orcl/orcl/trace
SQL> show parameter trace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_trace integer 0
sec_protocol_error_trace_action string TRACE
sql_trace boolean FALSE
trace_enabled boolean TRUE
tracefile_identifier string
SQL> select value from v$diag_info where name='Default Trace File';--当前session默认的trace文件
VALUE
--------------------------------------------------------
/u01/diag/rdbms/orcl/orcl/trace/orcl_ora_26614.trc
SQL> alter session set tracefile_identifier='mysession';--设置自定义标识符
Session altered.
SQL> select value from v$diag_info where name='Default Trace File';--当前session默认的trace文件
VALUE
-------------------------------------------------------------
/u01/diag/rdbms/orcl/orcl/trace/orcl_ora_26614_mysession.trc
SQL> alter session set sql_trace=true;--打开sql_trace
Session altered.
SQL> select sysdate from dual;--执行语句
SYSDATE
---------
05-APR-16
SQL> alter session set sql_trace=false;--关闭sql_trace
Session altered.
cd到trace目录,查看生成的trace文件
[oracle@silent ~]$ cd /u01/diag/rdbms/orcl/orcl/trace
[oracle@silent trace]$ ll *mysession*
-rw-r----- 1 oracle oinstall 2456 Apr 5 16:24 orcl_ora_26614_mysession.trc
-rw-r----- 1 oracle oinstall 110 Apr 5 16:24 orcl_ora_26614_mysession.trm
使用Oracle自带的一个命令行工具tkprof,将trace文件生成一个易读的文本文件
[oracle@silent trace]$ tkprof orcl_ora_26614_mysession.trc mysession.txt
[oracle@silent trace]$ ll *mysession*
-rw-r--r-- 1 oracle oinstall 5455 Apr 5 16:26 mysession.txt
-rw-r----- 1 oracle oinstall 2456 Apr 5 16:24 orcl_ora_26614_mysession.trc
-rw-r----- 1 oracle oinstall 110 Apr 5 16:24 orcl_ora_26614_mysession.trm
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28909249/viewspace-2075620/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28909249/viewspace-2075620/