---
title: "Show Trace - 数据库代理  V4.3.6 | OceanBase 文档中心"
description: Show Trace Show Trace 功能能够交互式展示上一次执行的 SQL 请求执行过程中调用链路情况，以及链路中各阶段耗时情况，以便进行性能分析或调优，可以使用 Show Trace 功能便捷地找到性能瓶颈点。 版本约束 OceanBase 数据库：V4.2.0 及以上版本 ODP：V4.2.0 及以上版本…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*nSAhQbrBXKwAAAAAAAAAAAAADiGDAQ/original) 数据库代理 V 4.3.6 LTS

# Show Trace

更新时间：2026-05-13 16:59:39

[编辑](https://github.com/oceanbase/oceanbase-proxy-doc/edit/V4.3.6/zh-CN/900.o-m-guide/300.show-trace.md)  

Show Trace 功能能够交互式展示上一次执行的 SQL 请求执行过程中调用链路情况，以及链路中各阶段耗时情况，以便进行性能分析或调优，可以使用 Show Trace 功能便捷地找到性能瓶颈点。

## 版本约束

- OceanBase 数据库：V4.2.0 及以上版本
 - ODP：V4.2.0 及以上版本
 - OCP：V4.0.3 及以上版本

## 注意事项

OceanBase 数据库自 V4.2.0 开始支持 Show Trace 功能，基于 OceanBase 2.0 协议。关于该功能请注意以下几点。

- 当使用兼容的组件版本时，可以在会话（Session）级别通过功能开关启用 Show Trace 功能。开启后，ODP 和 OceanBase 数据库将对后续执行的每一条 SQL 记录详细的交互信息。SQL 执行完成后，只需执行 `show trace;` 命令，即可查看上一条 SQL 所生成的诊断信息。
 - Show Trace 功能默认关闭。因为基于协议传递的诊断信息会带来额外的解析、传输、记录处理的开销，对性能不友好，所以默认情况下各组件不会记录 Show Trace 信息。
 - Show Trace 功能的正常运行依赖于协议承载和交互。当组件版本不兼容或功能关闭时，将导致 SQL 执行或诊断信息记录异常，具体场景包括：

     - 当 OceanBase 数据库不支持或已关闭 Show Trace 功能时，该能力将无法使用。
     - 当 OceanBase 数据库支持并开启 Show Trace 功能，而 ODP 不支持该功能时，执行 `show trace;` 命令后，仅能获取 OceanBase 数据库的交互信息。
     - 当 OceanBase 数据库和 ODP 均支持且已开启 Show Trace 功能时，执行 Show Trace 命令后，可以获取上一条 SQL 的交互信息，包括 ODP 与 OceanBase 数据库之间的交互内容。

## 操作步骤

### 步骤一：配置 ODP

使用 root@sys 用户通过 ODP 登录 OceanBase 集群，并执行如下操作。

1. 开启 ODP 与 OceanBase 数据库间的 OceanBase 2.0 协议

   该操作使 ODP 可以获取到 OBServer 节点的统计信息，有如下两种设置方法。

      - 方法一：配置 [server_protocol](https://www.oceanbase.com/docs/common-odp-doc-cn-1000000005053885) 值为 `Auto`，并配置 [enable_single_leader_node_routing](https://www.oceanbase.com/docs/common-odp-doc-cn-1000000005053793) 值为 `False`。

       ```shell
       obclient> alter proxyconfig set server_protocol = 'Auto';
       obclient> alter proxyconfig set enable_single_leader_node_routing = False;

       ```
      - 方法二：直接配置 [server_protocol](https://www.oceanbase.com/docs/common-odp-doc-cn-1000000005053885) 值为 `OceanBase 2.0`。

       ```sql
       obclient> alter proxyconfig set server_protocol = 'OceanBase 2.0';

       ```
 2. 开启 ODP 自身的 trace 统计

   通过设置 [enable_full_link_trace](https://www.oceanbase.com/docs/common-odp-doc-cn-1000000005053727) 为 `True`，选择使用全链路追踪功能来追踪查询执行。

   ```sql
   obclient> alter proxyconfig set enable_full_link_trace = True;

   ```

### 步骤二：开启 Show Trace 功能并执行目标 SQL

使用用户租户登录 OceanBase 集群，并执行如下操作。

1. 开启 Session 级别 Show Trace。

   可通过设置 [ob_enable_show_trace](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004478780) 为 `ON`，选择开启 Show Trace 功能。

   ```sql
   obclient> set ob_enable_show_trace= 'ON';

   ```
 2. 执行目标 SQL，此处以执行 `show tables;` 命令为例。

   ```sql
   obclient> show tables;

   ```

   输出如下：

   ```shell
   +----------------------------+
   | Tables_in_test             |
   +----------------------------+
   | t                          |
   | t1                         |
   | t2                         |
   +----------------------------+
   3 rows in set

   ```

### 步骤三：使用 Show Trace

您可执行 `show trace;` 命令获得 resultset 结果集回显，也可执行 `show trace format='json';` 命令获得 resultset 结果集的 json 格式。

- 执行 `show trace;` 命令获得 resultset 结果集回显。

  ```sql
  obclient> show trace;

  ```

  输出如下：

  ```shell
  +-----------------------------------------------+----------------------------+------------+
  | Operation                                     | StartTime                  | ElapseTime |
  +-----------------------------------------------+----------------------------+------------+
  | ob_proxy                                      | 2026-01-08 15:17:24.555215 | 12.414 ms  |
  | ├── ob_proxy_partition_location_lookup        | 2026-01-08 15:17:24.555411 | 0.010 ms   |
  | ├── ob_proxy_server_process_req               | 2026-01-08 15:17:24.555813 | 10.150 ms  |
  | └── com_query_process                         | 2026-01-08 15:17:24.555989 | 10.265 ms  |
  |     └── mpquery_single_stmt                   | 2026-01-08 15:17:24.556058 | 10.172 ms  |
  |         ├── sql_compile                       | 2026-01-08 15:17:24.556137 | 7.300 ms   |
  |         │   ├── pc_get_plan                   | 2026-01-08 15:17:24.556230 | 0.016 ms   |
  |         │   └── hard_parse                    | 2026-01-08 15:17:24.556370 | 7.014 ms   |
  |         │       ├── parse                     | 2026-01-08 15:17:24.556396 | 0.044 ms   |
  |         │       ├── resolve                   | 2026-01-08 15:17:24.556526 | 1.866 ms   |
  |         │       ├── rewrite                   | 2026-01-08 15:17:24.558557 | 2.020 ms   |
  |         │       ├── optimize                  | 2026-01-08 15:17:24.560613 | 1.928 ms   |
  |         │       └── code_generate             | 2026-01-08 15:17:24.562580 | 0.428 ms   |
  |         └── sql_execute                       | 2026-01-08 15:17:24.563462 | 2.457 ms   |
  |             ├── open                          | 2026-01-08 15:17:24.563469 | 0.089 ms   |
  |             ├── response_result               | 2026-01-08 15:17:24.563614 | 1.620 ms   |
  |             │   └── do_local_das_task         | 2026-01-08 15:17:24.563716 | 1.025 ms   |
  |             └── close                         | 2026-01-08 15:17:24.565277 | 0.342 ms   |
  |                 ├── close_das_task            | 2026-01-08 15:17:24.565294 | 0.028 ms   |
  |                 └── end_transaction           | 2026-01-08 15:17:24.565551 | 0.036 ms   |
  +-----------------------------------------------+----------------------------+------------+
  20 rows in set

  ```

  通过上述回显结果，可以先定界问题范围，从上述例子入手分析，通过分析下述几个点位的耗时，基本可以快速定界整体 DB 执行耗时的情况，为进一步分析和优化提供帮助。

     - **ob_proxy** 是 ODP 的起始点位，记录从 ODP 收到 SQL 请求到给客户端完整反馈响应的时间。
     - **ob_proxy_server_process_req** 点位表示发完 SQL 请求，到第一次收到 OBServer 节点返回响应的时间，等于 OBServer 节点处理时间 + 返回的网络耗时。
     - **com_query_process** 是 OceanBase 数据库的总点位，记录 OBServer 节点从收到 SQL 请求到转发响应完毕所需的时间。
 - 执行 `show trace format='json';` 命令获得 resultset 结果集的 json 格式。

  执行 `show trace format = 'json';` 命令可以得到 json 的结果回显，并可以格式化，便于收集和观察分析，如下图所示。

  ![图一](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odp/V4.3.6/300.show-trace-01.png)

您可反复执行 `show trace;` 命令或 `show trace format='json';` 命令，实时回显观察。

### 步骤四：关闭 Show Trace 功能

分析结束后，执行如下命令关闭 Session 级别 Show Trace，避免性能影响。

```sql
obclient> set ob_enable_show_trace= 'OFF';

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
