Diagnostic tracing is an advanced method of application profiling. The diagnostic tracing data produced by the database server includes such things as the timestamps 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
circumstances that cause resource contention (CPUs, Disk I/O, and memory)
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.
Tracing session data
Configuring diagnostic tracing
Creating a tracing session
Analyzing diagnostic tracing information
Creating a separate tracing database