This event can be used to trace transaction recovery during startup
For example:
ALTER SESSION SET EVENTS '10013 trace name context forever, level 1';
This event can be used to dump undo segment headers before and after transaction recovery
For example:
ALTER SESSION SET EVENTS '10015 trace name context forever, level 1';
This event can be used to dump sort statistics. Level 10 is the most detailed
For example:
ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
This event can be used to dump sort intermediate run statistics. Level 10 is the most detailed
For example:
ALTER SESSION SET EVENTS '10033 trace name context forever, level 10';
This event can be used to trace free list management operations
For example
ALTER SESSION SET EVENTS '10045 trace name context forever, level 1';
This event can be used to dump SQL statements executed by a session with execution plans and statistics. Bind variable and wait statistics can optionally be included. Level 12 is the most detailed.
For example:
ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';
Levels are:
Level | Description | Version |
1 | Trace includes SQL statement, response time, service time, execution statistics (#rows, #LIOs #PRs #PWs). In 10.2 and below execution plan written to trace file when associated cursor is closed. In 11.1 and above execution plan written to trace file after first execution of each cursor - Equivalent to PLAN_STAT = 'first_execution' | All |
4 | As level 1 plus bind variables | All |
8 | As level 1 plus wait times | All |
16 | As level 1 plus execution plans for every execution. Equivalant to PLAN_STAT = 'all_executions' | 11.1 and above |
32 | As level 1 without any execution plans. Equivalent to PLAN_STAT = 'never' | 11.1 and above |
32 | As level 1 plus execution plans for any statement execution requiring more than 60 seconds of DB time | 11.2.0.2 and above |
Event 10046 level 4 trace only captures the first bind variable in an array.
Consider the following example:
EXECUTE dbms_monitor.session_trace_enable (binds=>TRUE); CREATE TABLE driver (key VARCHAR2(4), name VARCHAR2(30)); DECLARE TYPE driver_tab IS TABLE OF driver%ROWTYPE; d driver_tab := driver_tab (); BEGIN d.extend (6); d(1).key := 'LHAM'; d(1).name := 'Lewis Hamilton'; d(2).key := 'NROS'; d(2).name := 'Nico Rosberg'; d(3).key := 'SVET'; d(3).name := 'Sebastian Vettel'; d(4).key := 'FALO'; d(4).name := 'Fernando Alonso'; d(5).key := 'DRIC'; d(5).name := 'Daniel Ricciardo'; d(6).key := 'JBUT'; d(6).name := 'Jenson Button'; FORALL j IN 1..3 INSERT INTO driver VALUES (d(j).key,d(j).name); FORALL j IN 4..6 INSERT INTO driver VALUES (d(j).key,d(j).name); END; /
Trace will only contain bind variable values for two rows:
BINDS #139676743602632: Bind#0 ... value="LHAM" Bind#1 ... value="Lewis Hamilton" ... BINDS #139676743602632: Bind#0 ... value="FALO" Bind#1 ... value="Fernando Alonso"
The trace output by the 10046 event only includes the first row of each array insert. The remaining rows are not traced.
Note that this has consequences for load generation / simulation tools such as LoadRunner and HammerDB which base their customized input on 10046 trace.
This event can be used to dump the decisions made by the optimizer when parsing a statement. Level 1 is the most detailed
For example:
ALTER SESSION SET EVENTS '10053 trace name context forever, level 1';
Levels are:
Level | Action |
1 | Print statistics and computations |
2 | Print computations only |
Optimizer decisions are only written to the trace file when a statement is hard-parsed.
In Oracle 11.2 and above (possibly earlier) the DBMS_SQLDIAG DUMP_TRACE procedure can be used to dump 10053 trace (optimizer or compiler) for a specific SQL statement. DUMP_TRACE does not execute the SQL statement to generate the trace file.
This event can be used to force the optimizer to dump predicates to a table It is available in Oracle 7.1.3 and above, and was still working in Oracle 9.2.
This event requires the following table to be created in the schema of the user parsing the statement
CREATE TABLE kkoipt_table ( c1 INTEGER, c2 VARCHAR2(80) );
To enable this event use:
ALTER SESSION SET EVENTS '10060 trace name context forever, level 1';
This example uses the following object:
CREATE TABLE t1 (c01 NUMBER, c02 NUMBER);
With event 10060 set to level 1, when the following statement is executed for the first time:
SELECT c01 FROM t1 WHERE c02 = 0;
It is parsed and the results written to kkoipt_table
The results can be selected using the statement:
SELECT c1,c2 FROM kkoipt_table ORDER BY c1;
C1 | C2 |
1 | Table: |
2 | T1 |
3 | frofand |
4 | "T1"."C02"=0 |
The following table summarises the various operations that can be reported by this event
Operation | Description |
fptconst | Folding constants |
fptrnum | Remove ROWNUM predicates |
fptwhr | Remove all WHERE predicates except remaining ROWNUM predicates |
frofkks (rowid lookup) | ROWID lookup |
frofkks[i] (and-equal lookup) | start key |
frofkke[i] (and-equal lookup) | end key |
froiand | index-only predicate |
frofkksm[i] (sort-merge) | sort-merge key |
frosand (sort-merge) | sort-merge predicates |
frojand (sort-merge) | join predicates |
frofkks[i] (index start key) | index start key |
frofkke[i] (index stop key) | index end key |
frofand (hash part) | table predicate (hash) |
froiand (index only filter) | index only predicate |
frofand | table predicate |
froutand | outer join predicates |
The amount of library cache dump output for state object dumps can be limited using event 10065
ALTER SESSION SET EVENTS '10065 trace name context forever, level level';
where level is one of the following
Level | Description |
1 | Address of library object only |
2 | As level 1 plus library object lock details |
3 | As level 2 plus library object handle and library object |
Level 3 is the default
This event can be used to SQL*Net statistics. Level 2 is the most detailed
For example:
ALTER SESSION SET EVENTS '10079 trace name context forever, level 2';
This event can be used to trace high water mark changes
For example:
ALTER SESSION SET EVENTS '10081 trace name context forever, level 1';
This event can be used to hash join statistics. Level 10 is the most detailed
For example:
ALTER SESSION SET EVENTS '10104 trace name context forever, level 10';
This event can be used to partition pruning information
For example:
ALTER SESSION SET EVENTS '10128 trace name context forever, level level';
Levels are:
Level | Action |
0x0001 | Dump pruning descriptor for each partitioned object |
0x0002 | Dump partition iterators |
0x0004 | Dump optimizer decisions about partition-wise joins |
0x0008 | Dump ROWID range scan pruning information |
There are further levels (up to 4096?)
In Oracle 9.0.1 and above, a table must be created before level 2 of this event can be set.
The table definition is as follows
CREATE TABLE kkpap_pruning ( partition_count NUMBER, iterator VARCHAR2(32), partition_level VARCHAR2(32), order_pt VARCHAR2(12), call_time VARCHAR2(12), part# NUMBER, subp# NUMBER, abs# NUMBER );
This event can be used to dump consistent reads
ALTER SESSION SET EVENTS '10200 trace name context forever, level 1';
This event can be used to dump consistent read undo application
ALTER SESSION SET EVENTS '10201 trace name context forever, level 1';
This event can be used to dump changes to the undo header (transaction table)
ALTER SESSION SET EVENTS '10220 trace name context forever, level 1';
This event can be used to dump undo changes applied. Level 7 is the most detailed
ALTER SESSION SET EVENTS '10221 trace name context forever, level 7';
This event can be used to dump index block splits and deletes detailed
ALTER SESSION SET EVENTS '10224 trace name context forever, level 1';
This event can be used to dump changes to dictionary-managed extents made in the row cache
ALTER SESSION SET EVENTS '10225 trace name context forever, level 1';
This event can be used to dump remotely executed SQL statements
ALTER SESSION SET EVENTS '10241 trace name context forever, level 1';
This event can be used to trace the actions of the PMON background process
This event can only be enabled in the init.ora file using:
event = "10246 trace name context forever, level 1"
The ALTER SYSTEM command does not appear to work for this event
There only appears to be one level for this event (levels 5 and 10 appear to generate the same output as level 1)
This event can be used to trace dispatcher processes
This event can be enabled in the init.ora file using:
event = "10248 trace name context forever, level 10"
In Oracle 9.2 (Windows 2000) the trace is written to a file in the udump directory with a name in the format:
ServiceName_dDispatcherNumber_ThreadNumber.trc
e.g.:
JD92001_d000_1234.trc
Valid levels are 1 to 10 (Metalink Note)
This event can be used to trace shared server (MTS) processes
This event can be enabled in the init.ora file using
event = "10249 trace name context forever, level 10"
In Oracle 9.2 (Windows 2000) the trace is written to a file in the udump directory with a name in the format:
ServiceName_sSharedServerNumber_ThreadNumber.trc
e.g.:
JD92001_s000_5678.trc
Valid levels are 1 to 10 (Metalink Note)
This event can be used to enable debugging code in shared cursor management modules
event = "10270 trace name context forever, level 10"
This event can be used to enable debugging code for table and index block prefetching. It also enables dumping of trace by the CKPT process.
event = "10299 trace name context forever, level 1"
This event can be used to enable debugging code for direct path
ALTER SESSION SET EVENTS '10357 trace name context forever, level 1';
This event can be used to dump parallel slave statistics
ALTER SESSION SET EVENTS '10390 trace name context forever, level level';
Levels are (from messages)
Level | Action |
0x0001 | Slave-side execution messages |
0x0002 | Coordinator-side execution messages |
0x0004 | Slave context state changes |
0x0008 | Slave ROWID range bind variables and xty |
0x0010 | Slave fetched rows as enqueued to TQ |
0x0020 | Coordinator wait reply handling |
0x0040 | Coordinator wait message buffering |
0x0080 | Slave dump timing |
0x0100 | Coordinator dump timing |
0x0200 | Slave dump allocation file number |
0x0400 | Terse format for debug dumps |
0x0800 | Trace CRI random sampling |
0x1000 | Trace signals |
0x2000 | Trace parallel execution granule operations |
0x4000 | Force compilation by slave 0 |
This event can be used to dump parallel granule allocation / assignment statistics
ALTER SESSION SET EVENTS '10391 trace name context forever, level level';
Levels are (from messages):
Level | Action |
0x0001 | Dump summary of each object scanned in parallel |
0x0002 | Full dump of each object except extent map |
0x0004 | Full dump of each object including extent map |
0x0010 | Dump summary of each granule generators |
0x0020 | Full dump of granule generators except granule instances |
0x0040 | Full dump of granule generators including granule instances |
0x0080 | Dump system information |
0x0100 | Dump reference object for the query |
0x0200 | Gives timing in kxfralo |
0x0400 | Trace affinity module |
0x0800 | Trace granule allocation during query execution |
0x1000 | Trace object flush |
0x2000 | Unknown |
This event can be used to dump kxfp statistics after each parallel query
ALTER SESSION SET EVENTS '10393 trace name context forever, level 1';
Note that in Oracle 9.2 for parallel execution trace is written to files with names of the format
ServiceName_pServerNumber_ThreadNumber.trc
This is an example of the output for this event. The output has been modified for readability
kxfpdst dumping statistics --------------------------- Query Sessions 1 Total Messages Sent 0 Data Messages Sent 948 Stream Messages Sent 917 Dialog Messages Sent 26 Null Messages Sent 0 Fast Shared Memory Streams 669 Fast Distributed Stream 0 Stream Mode Credit Ping 0 Unknown Credit Pings 0 Single Credit Pings 252 Double Credit Pings 0 Triple Credit Pings 0 Multiple Credit Pings 0 Total Messages Dequeued 0 Data Messages Dequeued 31 Null Messages Dequeued 0 Immediate Dequeues 1 Posted Dequeues 31 Timed-out Dequeues 0 Implicit Dequeues 255 Total Dequeue Waits 85 Total Dequeue Timeouts 44 Dequeues for Credit (geb) 77 Dequeues for Credit (free) 0 Dequeues for Credit (enq) 39
This event can be used to trace the actions of the SMON background process
This event can be enabled in the init.ora file using
event = "10500 trace name context forever, level 1"
This event traces bitmap index creation.
ALTER SESSION SET EVENTS '10608 trace name context forever, level 10';
This event dumps information about which enqueues are being obtained
When enabled it prints out arguments to calls to ksqcmi and ksqlrl and the return values
ALTER SESSION SET EVENTS '10704 trace name context forever, level 1';
This event allows RAC global enqueue manipulation to be trace
ALTER SESSION SET EVENTS '10706 trace name context forever, level 1';
The amount of output can be limited using the unsupported parameter '_ksi_trace'.
This parameter specifies the lock types that should be included e.g. TM, TX etc. They are specified as a string e.g. 'TMTX'
The parameter '_ksi_trace' can only be set in the initialisation file.
This event allows RAC buffer cache activity to be traced:
ALTER SESSION SET EVENTS '10708 trace name context forever, level 10';
This diagnostic applies only to RAC clusters (not single-instance)
This event traces bitmap index access. It displays the start ROWID and end ROWID of each bitmap
ALTER SESSION SET EVENTS '10710 trace name context forever, level 1';
This event traces the bitmap index merge operation.
ALTER SESSION SET EVENTS '10711 trace name context forever, level 1';
This event traces the bitmap index OR operation.
ALTER SESSION SET EVENTS '10712 trace name context forever, level 1';
This event traces the bitmap index AND operation.
ALTER SESSION SET EVENTS '10713 trace name context forever, level 1';
This event traces the bitmap index MINUS operation.
ALTER SESSION SET EVENTS '10714 trace name context forever, level 1';
This event traces the bitmap index conversion to ROWIDs operation
ALTER SESSION SET EVENTS '10715 trace name context forever, level 1';
This event traces the bitmap index compress/decompress
ALTER SESSION SET EVENTS '10716 trace name context forever, level 1';
This event traces the bitmap index compaction.
ALTER SESSION SET EVENTS '10717 trace name context forever, level 1';
This event traces the bitmap index DML.
ALTER SESSION SET EVENTS '10719 trace name context forever, level 1';
This event traces find grained access (RLS) predicates
ALTER SESSION SET EVENTS '10730 trace name context forever, level 1';
This event traces CURSOR statements
ALTER SESSION SET EVENTS '10731 trace name context forever, level level';
Levels are:
Level | Action |
1 | Print parent query and subquery |
2 | Print subquery only |
This event traces PL/SQL execution
ALTER SESSION SET EVENTS '10928 trace name context forever, level 1';
This event dumps PL/SQL execution statistics.
ALTER SESSION SET EVENTS '10938 trace name context forever, level 1';
This event currently generates the following output:
--NOTICE --------------------------------------- --PL/SQL TRACE INFORMATION IS NOW IN THE DATABASE -- To create the trace tables, use the script -- -- rdbms/admin/tracetab.sql under ORACLE_HOME --