1、set events命令格式
oracle提供进行事件跟踪及转储的命令,个人认为在用户的连接终端(也就是用户连接到oracle的session)中,执行跟踪事件命令是灵活的、方便的,常用的。使用方法如下:
SQL> alter session set events ‘immediate trace name controlf level 1′;
会话已更改。
基本命令是“alter session set events ‘…’
引号中为要指定跟踪的事件定义,有两种方法:
1)事件号方式
一种是在引号中指定一个“事件号(eventnumber)”,指触发dump的事件号,事件号可以是Oracle错误号(出现相应错误时跟踪指定的事件)或oralce内部事件号(仅当同时使用trace name context 时),内部事件号在10000到10999之间,不能与immediate关键字同用。
SQL> alter session set events ‘ 10013′;
2)事件名方式
另一种是在引号中指定“事件名称(eventname)”,需要加上“trace name”关键字。
SQL> alter session set events ‘trace name controlf ‘;
3)跟踪级别
这两种方式,都需要指定跟踪事件的级别,一般为1至10,级别超高,跟踪的信息越全。这里有个解释:
1 :only the file header
2 :just the file header, the database info record, and checkpoint progress records
3 :all record types, but just the earliest and latest records for circular reuse record types
4 :as above, but includes the 4 most recent records for circular reuse record types
5+ :as above, but the number of circular reuse records included doubles with each level
SQL> alter session set events ‘trace name controlf level 3′;
4)一直跟踪
在引号中加入“forever”关键字,放置于后端,且与level关键字之间有一个逗号。
SQL> alter session set events ‘trace name controlf forever, level 3′;
5)立即执行
在引号中加入“immediate”关键字,放置于前端。immediate和forever关键字不能同时使用。
SQL> alter session set events ‘immediate trace name controlf level 3′;
通常这个例子为常用的使用方法。
2、跟踪sql的执行
通过以下方式可以手动的开启sql的跟踪
1.select sid,serial#,username,osuser,machine from v$session; //先查询到session的sid,serial#
2.exec dbms_system.set_sql_trace_in_session(sid,sid_serial#,true); //开始跟踪
3.exec dbms_system.set_sql_trace_in_session(sid, sid_serial#,false); //停止跟踪
4.tkprof *.trc *.txt //通过tkprof可以将trc文件转换成易读的格式(实际就是一些统计信息)。
oracle提供进行事件跟踪及转储的命令,个人认为在用户的连接终端(也就是用户连接到oracle的session)中,执行跟踪事件命令是灵活的、方便的,常用的。使用方法如下:
SQL> alter session set events ‘immediate trace name controlf level 1′;
会话已更改。
基本命令是“alter session set events ‘…’
引号中为要指定跟踪的事件定义,有两种方法:
1)事件号方式
一种是在引号中指定一个“事件号(eventnumber)”,指触发dump的事件号,事件号可以是Oracle错误号(出现相应错误时跟踪指定的事件)或oralce内部事件号(仅当同时使用trace name context 时),内部事件号在10000到10999之间,不能与immediate关键字同用。
SQL> alter session set events ‘ 10013′;
2)事件名方式
另一种是在引号中指定“事件名称(eventname)”,需要加上“trace name”关键字。
SQL> alter session set events ‘trace name controlf ‘;
3)跟踪级别
这两种方式,都需要指定跟踪事件的级别,一般为1至10,级别超高,跟踪的信息越全。这里有个解释:
1 :only the file header
2 :just the file header, the database info record, and checkpoint progress records
3 :all record types, but just the earliest and latest records for circular reuse record types
4 :as above, but includes the 4 most recent records for circular reuse record types
5+ :as above, but the number of circular reuse records included doubles with each level
SQL> alter session set events ‘trace name controlf level 3′;
4)一直跟踪
在引号中加入“forever”关键字,放置于后端,且与level关键字之间有一个逗号。
SQL> alter session set events ‘trace name controlf forever, level 3′;
5)立即执行
在引号中加入“immediate”关键字,放置于前端。immediate和forever关键字不能同时使用。
SQL> alter session set events ‘immediate trace name controlf level 3′;
通常这个例子为常用的使用方法。
2、跟踪sql的执行
通过以下方式可以手动的开启sql的跟踪
1.select sid,serial#,username,osuser,machine from v$session; //先查询到session的sid,serial#
2.exec dbms_system.set_sql_trace_in_session(sid,sid_serial#,true); //开始跟踪
3.exec dbms_system.set_sql_trace_in_session(sid, sid_serial#,false); //停止跟踪
4.tkprof *.trc *.txt //通过tkprof可以将trc文件转换成易读的格式(实际就是一些统计信息)。