Advanced application profiling using diagnostic tracing

Diagnostic tracing is an advanced method of application profiling. The diagnostic tracing data produced by the database server includes such things as the time stamps and connection ids of statements handled by the database server. For queries, it also includes isolation level, number of rows fetched, cursor type, and query execution plan. For INSERT, UPDATE, and DELETE statements, it also includes the number of rows affected. Diagnostic tracing can also record information about locking and deadlocks, and can capture numerous performance statistics.

You use the data gathered during diagnostic tracing to perform in-depth application profiling activities such as identifying and troubleshooting:

  • specific performance problems
  • statements that are unusually slow to execute
  • improper option settings
  • circumstances that cause the optimizer to pick a sub-optimal plan
  • contention for resources (CPUs, memory, disk I/O)
  • application logic problems

Tracing data is also used by tools such as the Index Consultant to make specific recommendations on how to change your database or application to improve performance.

The tracing architecture is robust and scalable, and can record all the information that request logging records, as well as detailed information to support tailored analysis. For information about request logging, see Performing request trace analysis.

See also

Tracing session data
Configuring diagnostic tracing
Creating a diagnostic tracing session
Analyzing diagnostic tracing information
Creating an external tracing database