10046 trace

How we will find the 10046 trace file?
Who is Participating?
slightwv (䄆 Netminder) Commented:
I should also point out that only in very specific instances should you ever need to trace 10046 for performance tuning.

I have only used this in very extreme circumstances.

For 99% of my SQL tuning I use explain plan.  Once If get it close, I switch to the autotrace option in sqlplus for more detail if necessary.

For example in sqlplus:
set autotrace on

select 'hello' from dual;

set autotrace off

Open in new window

If you don't actually want to see the output from the select then:
set autotrace traceonly

The difference between explain plan and autotrace:
explain plan doesn't actually execute the statement.

using autotrace will execute the statement.
explain plan is very useful for statements that take a lot of time to execute.

When BOTH of these methods don't achieve the tuning goal, then any only then will I actually perform a 10046 trace.
Steve WalesSenior Database AdministratorCommented:
In 10g and earlier, they should be in the location specified by the init parameter user_dump_dest.

In 11g and up, they should be in the location specified by the init parameter diagnostic_dest (and then you go down the tree from there into instance/instance/trace I believe.
slightwv (䄆 Netminder) Commented:
What is your Oracle version?

In 11g it should be in the trace folder under diagnostic_dest spfile parameter.

SELECT value
FROM   v$diag_info
WHERE  name = 'Default Trace File';

In previous versions I believe it is under the folder pointed to by the user_dump_dest spfile parameter.
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

vangogpeterAuthor Commented:


Please help me to get exactly 10046 or 10053

just that one.
slightwv (䄆 Netminder) Commented:
So the question is really how to perform a 10046 trace?


Activating event 10046 is actually quite straightforward for your current session, and takes the form of

    alter session set events '10046 trace name context forever, level num';

Where num is either 1,4,8 or 12, with 1 being the same as a normal set sql_trace=true, 4 including values of bind variables, 12 including wait events, and 12 including both bind variables and wait events.
slightwv (䄆 Netminder) Commented:
As far as the location of the files, that has already been answered.

The file name should be the one with the process or session id of the session or process that created it.  I forget which.

I typically look for the one with the latest date/time stamp.  I open it and if it looks like the trace file I'm after, I use that one.

Less work involved that way.
vangogpeterAuthor Commented:
We want to spool the output of 10046 and 10053 in  a file or get the just to display anyu clue ..
slightwv (䄆 Netminder) Commented:
You don't 'spool' the output.  spool is a sqlplus command to capture the output of executed statements.

You alter the session to enable the trace.  The trace file is generated in the directories mentioned above.

You find the trace file then perform whatever actions you wish on it.  Typically this is a tkprof to make it somewhat more human readable (but barely human readable).

I'm not sure what else you are missing.
Steve WalesSenior Database AdministratorCommented:
I guess a key point here is what is it that you're trying to achieve with the trace?  What are you hoping to gain?

If you are trying to performance tune, slightwv's comment above about using autotrace / explain and trying to hit the large things up front (missing indexes, etc) can get you large gains before trying to hit the trace (which not only shows accesses to user tables but also all the Oracle system tables as well).

It's a horrible file to read at the best of times.
vangogpeterAuthor Commented:
I want to go the os level and view. Please help. Which location is or else how we will capture.
slightwv (䄆 Netminder) Commented:
>>Please help. Which location is or else how we will capture.

We have already provided this information in previous posts.

After you trace the SQL statements the resulting trace file is either in the folder pointed to by the user_dump_dest or diagnostic_dest spfile parameters depending on your Oracle version.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.