Skip to content
WaitScope Sign in Request access (by email) Menu

What a 10046 trace contains

The data a 10046 trace carries, what WaitScope keeps in the report and deletes after the analysis, and what to check in the file before uploading.

Applies to: 10046 and deadlock traces

A 10046 trace is a text file and holds more than timings: the text of each SQL statement with the values written in it, server and application names, paths and, if you turn them on, bind values. This page lists what goes into the file, what WaitScope keeps, what it deletes and what to check before uploading.

What the trace contains

Data in a 10046 trace and where it appears in the report
DataWhere it is in the traceIn the report
File path on the serverHeader, Trace file lineFile on server, in the Summary
Database version, instance and server nameHeader: Oracle Database, Instance name, Node nameSession and environment, in the Summary
Session and process*** SESSION ID and Unix process pidSession and environment
Service, module, action and client_id*** SERVICE NAME, *** MODULE NAME, *** ACTION NAME and *** CLIENT IDSession and environment
Text of each SQL statement, with its literalsBetween PARSING IN CURSOR and END OF STMTStatement lists and statement detail, with the literal mask
Bind valuesBINDS blocks, only with binds turned on: level 4 or 12, or binds => trueThey do not appear: WaitScope ignores these lines
Object IDs and namesobj# in the waits; obj= and the name in the operation of the STAT linesPlan and Objects with the most wait time
ORA errorsERROR and PARSE ERROR linesErrors section

A deadlock trace also contains, for each session involved, the database user, the machine, the program, the module, the action, the SQL and the row waited for, with its rowid, plus a dump of the process state. The report shows what it reads from these parts in the Deadlocks section.

What WaitScope keeps

  • The result of the analysis: timings, counts, the text of each statement as it is in the trace (in a statement that adds up variants, the text with :s and :n and the literals of the variants that cost the most), the header names, the object names and the parts of the deadlock that the report shows.
  • The name of the uploaded file: it becomes the name of the analysis in History and the report title, including in the downloaded HTML.
  • The size and number of lines of the file.

The result is kept for the retention period, and only your account sees your analyses: no other user, not even the console administrator (retention and privacy). Bind values do not go into the result.

What is deleted

  • The trace is removed from the server as soon as the analysis finishes, whether it succeeded or failed. There is no trace download and no reprocessing: to analyze it again, upload the file again.
  • A partial upload is deleted when you cancel it, after 24 hours without a new chunk, or when the session that made the upload ends, in the browser or in the app.
  • The analysis is deleted when the retention period expires, or earlier, when you delete it.

What to check before uploading

  1. Generate it without binds. Use level 8 of 10046 or binds => false in DBMS_MONITOR. If the file already has BINDS blocks, WaitScope does not use them, but they travel in the file until the analysis finishes and the trace is deleted.
  2. Rename the file. The name becomes the report title and appears in History and in the app notification. Remove customer, system or personal names from it: zz-lote-noturno.trc works.
  3. Check the literal mask. It is on by default and is in My account, in the Report privacy panel; your name at the top of the console opens the page.
  4. Keep the header in mind. The server name, instance, service, module, action, client_id and file path appear in the report as they are: the mask applies only to the SQL text.

Literal mask

The mask replaces with *** the quoted text and every number used as a value in the SQL, including in GROUP BY, where the number is a value and not a column position. Only the position number in ORDER BY, as in order by 2, stays as it is. It applies to everything you see: the page, the downloaded HTML and JSON, the API and the app. The stored analysis keeps the original text, and unchecking the options shows the SQL as it came in the trace.

In a statement that adds up variants, the text already shows :s and :n in place of the literals. The mask hides the literals in the Variants that cost the most table and also the SQL ID of each variant, which would lead back to the text with the values.

Hints /*+ */, names in double quotes and binds, such as :1, stay as they are. Inside a comment, quoted text and numbers also become ***. The details are in hidden literals.

Where to go next

Updated on 2026-10-29. Report an error on this page