利用SQL_TRACE跟踪SQL的执行

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28909249/viewspace-2075620/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28909249/viewspace-2075620/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值