2

I have a trace on a session configured like this:

execute immediate 'ALTER SESSION SET TRACEFILE_IDENTIFIER = ''TEST1''';

DBMS_SESSION.session_trace_enable (waits => TRUE,
                                   binds => TRUE,
                                   plan_stat      => 'all_executions'
                                      );
-- do SQL stuff --
DBMS_SESSION.session_trace_disable();

When completed executing, I have some 80 .trc files created. Why is that, and is there a way to force all tracing to one file? Thanks.

3

This could be for at least 2 possible reasons:

  1. Shared server architecture: SQL trace files belong to server processes, but when you use shared server architecture, your session does not have a single dedicated server process, your session can exist in several different server processes over time.
  2. Parallel processing: when your statements run in parallel, each slave thread is a different process and as SQL trace files belong to processes, you have multiple processes running the same statement, hence the multiple trace files.

You can not force the creation of a single trace file, but you can consolidate these traces into a single file with trcsess, based on your SID, module name, action name, service or client identifier.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.