Oracle Performance Management Using Response Time Profiling

Excerpt from the Course

Want a preview of the course? Watch this short video to see one of the sections of material.


The course is organized into the following segments:

Why Collect Oracle Trace Data?
An Introduction to Response Time Profiling

  • Problems with Conventional Tuning Methods (Method C)

    What is Method C?
    Why doesn't it work consistently?
    How can we solve the performance problem?
    The data collection problem.
    The importance of properly scoped data.

  • Response Time Profiling

    What is Response Time Profiling?
    The golden rule of performance optimization.
    The basic steps needed to use Response Time Profiling
    Creating a basic response-time profile.

  • Target identification

    Specifying the performance improvement project, identifying the right task to optimize first.

What is 10046 Trace Data

  • Overview of Oracle Tracing Mechanisms

    What is 10046 trace?
    The oraus.msg file.
    Why is the trace data so important?

  • Ways to Manipulate Traces

    Parameter setting required and or recommended.
    How to turn on trace (examples from Oracle v8 and up).
    Turning off trace, explicitly vs implicitly.
    Finding the trace files and the naming conventions used for them.

  • Reading a 10046 Trace File

    Review of actual trace data
    The database calls and database call stats
    Parsing in cursor
    The "WAIT" events and wait event stats
    Overview of many "popular" wait events (db file scattered_read, db file sequential_read, latch free, SQLNet Message to and from client, etc.)

How to Collect Trace Data with Proper Instrumentation

  • What is properly instrumented trace data?

    Define code instrumentation.
    Why is instrumentation important?
    What's needed for instrumented code to produce a properly scoped trace file?
    What are the collateral benefits of code instrumentation?

  • Instrumentation with Client Identifier

    What is a Client Identifier?
    Setting the Client Identifier with DBMS_SESSION in PL/SQL.
    Examples of setting Client Identifier using JDBC, OCI, ODP.NET.
    Setting Default Client Identifier using Logon Trigger.
    Querying the Data Dictionary.
    Client Identifier collateral benefits DBMS_MONITOR.CLIENT_ID_STATE_ENABLE/DISABLE.

  • Instrumentation with DBMS_APPLICATION_INFO

    What is Module and Action?
    What values to set Module and Action?
    Examples of setting Module and Action.
    Flaws of using DBMS_APPLICATION_INFO in a procedure.
    A better way to set Module and Action in PL/SQL.
    Module and Action collateral benefits.
    Data Dictionary Views.

  • Instrumentation with HOTSOS_ILO

    What is Hotsos ILO?
    Installing Hotsos ILO.
    Instrumenting PL/SQL with Hotsos ILO.
         BEGIN_TASK and END_TASK
    Examples of using Hotsos ILO.

  • Special Considerations

         Shared Server

              What is Shared Server?
              Special considerations for tracing in a Shared Server environment.
              Location of trace files.
              Use of Oracle trcsess.
         Parallel Query

              What is Oracle Parallel Query Option?
              Special Considerations for tracing PQO.
              Location of trace files.
              Use of Oracle trcsess.

How to Profile Trace Data

  • Manually Profiling Trace Data

    What is a good profile?
    Doing the math, what numbers to use, how to add them up.
    Defining the unaccounted for time.
    How to use TKPROF.

Responding to Profiled Trace Data

  • Review common problem events exposed in response time profiles
         CPU Service
         db file % read
         SQL*Net message % client
         Latch free
         Buffer busy wait          ... and more ...

  • Analyze profile output and learn to make recommendations for corrective actions.

Target Audience

The course is designed for technicians and technical managers who want to respond faster and more permanently to Oracle system performance problems. The course is most effective for students who will be motivated to solve production Oracle system performance problems immediately upon returning to work after the course.


Before coming to class, please register for an account at

Students are expected to have a strong working knowledge of Oracle and SQL and experience as a database administrator or application developer. To maximize the value of the course, we strongly recommend the following pre-course reading:

  • Oracle Database Server Concepts Guide
    Students are expected to be familiar with the content of the Concepts guide for a relevant Oracle release. Material is available online, free of charge, at the Oracle Database Documentation Library. It is listed as "Concepts" in the Getting Started section.
  • A Better Way to Optimize (Chapter 1–Optimizing Oracle Performance)
    Students are expected to have read the first chapter from Optimizing Oracle Performance. Material is available online, free of charge, at Hotsos Education downloads.

Instructional Format

The three-day course is approximately 60% lecture, 40% hands-on exercises to strengthen understanding of the course material. The course is conducted in English.


Each student receives the following materials:

  • Course Notebook
    A printed copy of all the presentation slides used in the course.

Class Forum

For questions and discussion about the course, please visit our forum.


  • List Price: $1875.00
  • Alumni Pricing:
    $1250.00 - Available to prior attendees of the Diagnosing Oracle Performance Problems course.
    $500.00 - Available to prior attendees of this course.


Please visit our Calendar of Events to find when this course will be offered next.