10045事件是对SQL_TRACE 的增强通过10046可以看到ORACLE内核执行SQL_TRACE跟踪操作
SQL_TRACE的增强 ‘SQL_TRACE wait=false,bind=true‘,可以获得
1.级别
1 --标准SQL的SQL_TRACE
4 -- 1+ bind value [bind=true]
8 -- 1+ 等待事件跟踪 [wait=true]
12-- 1+4+9
11g之后
16 --为每次SQL执行生成STAT 信息输出 [plan_stat=all_executions]
32 --不转储执行统计信息 [plan_stat=never]
11.2.0.2之后
64 --自适应的STAT转储 [plan_stat=adaptive]
全局 event="10046 trace name context forever,level 12"
2.方法
2.1 方法1
alter session set events ‘10046 trace name context forever 12‘ --启用trace alter session set events ‘10046 trace name context off‘ --停止trace
11g之后
alter session set events ‘SQL_TRACE wait=true‘;
2.2 方法2
SQL> select sid,serial#,username from v$session where username is not null; SID SERIAL# USERNAME ---------- ---------- -------------------------------------------------------------------------------------------------------------------------------- 3 62469 SYS 217 44968 C##SAPR3 395 39248 C##SAPR3 596 21546 SYS exec dbms_system.set_ev(395,39248,10046,8,‘‘); --启用trace exec dbms_system.set_ev(395,39248,10046,0,‘‘); --停止trace ‘db file scattered read‘全表扫描 db_file_multiblock_read_count 全表扫描时每次IO可以读取的数据块数量