TRACE

The TRACE statement provides detailed information about query execution. It is intended to be viewed through a Graphical interface exposed by the TiDB server’s status port.

Synopsis

TraceStmt:

TraceStmt

TraceableStmt:

TraceableStmt

Examples

  1. trace format='row' select * from mysql.user;
  1. +--------------------------------------------+-----------------+------------+
  2. | operation | startTS | duration |
  3. +--------------------------------------------+-----------------+------------+
  4. | trace | 17:03:31.938237 | 886.086µs |
  5. | ├─session.Execute | 17:03:31.938247 | 507.812µs |
  6. | ├─session.ParseSQL | 17:03:31.938254 | 22.504µs |
  7. | ├─executor.Compile | 17:03:31.938321 | 278.931µs |
  8. | └─session.getTxnFuture | 17:03:31.938337 | 1.515µs |
  9. | └─session.runStmt | 17:03:31.938613 | 109.578µs |
  10. | ├─TableReaderExecutor.Open | 17:03:31.938645 | 50.657µs |
  11. | └─distsql.Select | 17:03:31.938666 | 21.066µs |
  12. | └─RPCClient.SendRequest | 17:03:31.938799 | 158.411µs |
  13. | └─session.CommitTxn | 17:03:31.938705 | 12.06µs |
  14. | └─session.doCommitWitRetry | 17:03:31.938709 | 2.437µs |
  15. | ├─*executor.TableReaderExecutor.Next | 17:03:31.938781 | 224.327µs |
  16. | └─*executor.TableReaderExecutor.Next | 17:03:31.939019 | 6.266µs |
  17. +--------------------------------------------+-----------------+------------+
  18. 13 rows in set (0.00 sec)
  1. trace format='json' select * from mysql.user;

The JSON formatted trace can be pasted into the trace viewer, which is accessed via the TiDB status port:

TiDB Trace Viewer-1

TiDB Trace Viewer-2

MySQL compatibility

This statement is a TiDB extension to MySQL syntax.

See also