---
title: "执行计划 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: 执行计划 SQL 优化比较耗时，为了避免反复执行 SQL 优化，会将生成的计划放进 Plan Cache，再次执行时直接从 Plan Cache 获取 Plan。每个租户在每个节点上都有一个独立的 Plan Cache，用以缓存在此节点上处理过的 SQL Plan。 Plan Cache 相关视图包含 Plan Ca…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.0

# 执行计划

更新时间：2026-04-10 11:58:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/600.manage/700.monitor/200.monitor-items-introduction/300.sql-monitor/300.execution-plan.md)  

SQL 优化比较耗时，为了避免反复执行 SQL 优化，会将生成的计划放进 Plan Cache，再次执行时直接从 Plan Cache 获取 Plan。每个租户在每个节点上都有一个独立的 Plan Cache，用以缓存在此节点上处理过的 SQL Plan。

Plan Cache 相关视图包含 Plan Cache 的统计信息、执行统计的统计信息及计划信息，这些视图的数据均来自 Plan Cache。相关视图包括：

- `GV$OB_PLAN_CACHE_STAT`：每个租户在每个节点上都有一个独立的 Plan Cache，用以缓存在此节点上处理过的 SQL Plan。该视图记录每个 Plan Cache 的统计信息，每个 Plan Cache 都有一条记录。
 - `GV$OB_PLAN_CACHE_PLAN_EXPLAIN`：记录 Plan Cache 中计划的算子（Operator）信息，每个算子都有一条记录。
 - `GV$OB_PLAN_CACHE_PLAN_STAT`：记录 Plan Cache 中计划的详细信息及其执行统计信息，每个计划都一条记录。

`GV$OB_PLAN_CACHE_PLAN_EXPLAIN` 视图记录了执行计划的详细信息，其主要字段介绍如下：

- `TENANT_ID`：租户 ID。
 - `SVR_IP`：节点 IP。
 - `PLAN_ID`：执行计划 ID。
 - `PLAN_DEPTH`：Operator 的深度。
 - `OPERATOR`：Operator 的名称。
 - `NAME`：Operator 对应的表名。
 - `ROWS`：预估的结果行数。
 - `COST`：预估的代价。
 - `PROPERTY`：Operator 的详细信息。

#### 注意

- 查询 `GV$OB_PLAN_CACHE_PLAN_EXPLAIN` 视图时 , 需要指定 `TENANT_ID`、`SVR_IP`、`SVR_PORT`、`PLAN_ID` 的等值条件，否则查询结果为空。
 - 查询 `V$OB_PLAN_CACHE_PLAN_EXPLAIN` 视图时, 需要指定 `TENANT_ID`、`PLAN_ID` 的等值条件，否则查询结果为空。

例如，如下语句展示了一个执行计划：

```shell
obclient> select * from GV$OB_PLAN_CACHE_PLAN_EXPLAIN where tenant_id=1 and svr_ip='xx.xx.xx.xx' and svr_port=2882 and plan_id=349;
+-----------+-------------+----------+---------+------------+--------------+----------------------+--------------+------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| TENANT_ID | SVR_IP      | SVR_PORT | PLAN_ID | PLAN_DEPTH | PLAN_LINE_ID | OPERATOR             | NAME         | ROWS | COST | PROPERTY                                                                                                                                                |
+-----------+-------------+----------+---------+------------+--------------+----------------------+--------------+------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
|         1 | xx.xx.xx.xx |     2882 |     349 |          0 |            0 | PHY_DIRECT_RECEIVE   | NULL         |    1 |    6 | NULL                                                                                                                                                    |
|         1 | xx.xx.xx.xx |     2882 |     349 |          1 |            1 |  PHY_DIRECT_TRANSMIT | NULL         |    1 |    5 | NULL                                                                                                                                                    |
|         1 | xx.xx.xx.xx |     2882 |     349 |          2 |            2 |   PHY_TABLE_SCAN     | __all_server |    1 |    2 | table_rows:6, physical_range_rows:1, logical_range_rows:1, index_back_rows:0, output_rows:1, est_method:default_stat, avaiable_index_name[__all_server] |
+-----------+-------------+----------+---------+------------+--------------+----------------------+--------------+------+------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.04 sec)

```

`GV$OB_PLAN_CACHE_PLAN_STAT` 视图记录 Plan Cache 中计划的详细信息及其执行统计信息，每个计划都一条记录。

- `TENANT_ID`：租户 ID。
 - `SVR_IP`：节点 IP。
 - `PLAN_ID`：执行计划 ID，对应 `GV$OB_SQL_AUDIT` 视图中的 `PLAN_ID` 字段。
 - `SQL_ID`：SQL ID，对应 `GV$OB_SQL_AUDIT` 视图中的 `SQL_ID` 字段。
 - `TYPE`：执行计划的类型，`1` 表示本地计划、`2` 表示远程计划、`3` 表示分布式计划。
 - `STATEMENT`：参数化后的 SQL 语句。
 - `QUERY_SQL`：第一次加载计划时的原始 SQL 语句。
 - `FIRST_LOAD_TIME`：第一次被加载时间。
 - `SCHEMA_VERSION`：Schema 版本号。
 - `LAST_ACTIVE_TIME`：最近一次被执行时间。
 - `AVG_EXE_USEC`：平均执行时间。
 - `SLOWEST_EXE_TIME`：最慢执行的时间戳。
 - `SLOWEST_EXE_USEC`：最慢执行的耗时。
 - `SLOW_COUNT`：判断为慢查询次数，阈值通过集群配置项 `trace_log_slow_query_watermark` 控制。
 - `HIT_COUNT`：命中次数。
 - `LARGE_QUERYS`：判断为大查询次数，阈值通过集群配置项 `large_query_threshold` 控制。
 - `DELAYED_LARGE_QUERYS`：被判断为大查询且被丢入大查询队列的次数。
 - `TIMEOUT_COUNT`：超时次数。
 - `EXECUTIONS`：执行次数。
 - `DISK_READS`：所有执行物理读次数。
 - `DIRECT_WRITES`：所有执行写盘的次数。
 - `BUFFER_GETS`：所有执行逻辑读次数。
 - `APPLICATION_WAIT_TIME`：执行所有 application 类事件的总时间。
 - `CONCURRENCY_WAIT_TIME`：执行所有 concurrency 类事件的总时间。
 - `USER_IO_WAIT_TIME`：所有执行所有 user_io 类事件的总时间。
 - `ROWS_PROCESSED`：所有执行选择的结果行数或执行更改表中的行数。
 - `ELAPSED_TIME`：所有执行接收到请求到执行结束消耗时间。
 - `CPU_TIME`：所有执行消耗的 CPU 时间。
 - `OUTLINE_ID`：是否命中用户创建的 Outline ID，为 `-1` 表示不是通过绑定 Outline 生成的计划。
 - `OUTLINE_DATA`：计划对应的 Outline 信息。
 - `TABLE_SCAN`：该查询是否为主键扫描。
 - `EVOLUTION`：该执行计划是否在演进中。
 - `EVO_EXECUTIONS`：演进次数。
 - `PS_STMT_ID`：Prepare Statement 的 ID。

 上一篇 下一篇 ![有帮助](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) 咨询热线
