首批通过分布式安全可靠测评,为关键业务系统打造
计划缓存视图
更新时间:2026-04-01 13:38:41
计划缓存视图包含记录执行计划的缓存状态、执行统计的相关信息以及计划信息。
(G)V$OB_PLAN_CACHE_STAT 视图
(G)V$OB_PLAN_CACHE_STAT 展示当前租户在当前(所有)OBServer 节点的计划缓存整体的状态。其字段信息如下表所示。
| 字段名称 | 类型(MySQL 模式) | 类型(Oracle 模式) | 描述 |
|---|---|---|---|
| TENANT_ID | BIGINT(20) | 不支持该字段。 | 租户 ID |
| SVR_IP | VARCHAR2(32) | VARCHAR2(32) | 服务器的 IP 地址 |
| SVR_PORT | BIGINT(38) | NUMBER(38) | 端口号 |
| SQL_NUM | BIGINT(38) | NUMBER(38) | plan_cache 涉及 SQL 条数 |
| MEM_USED | BIGINT(38) | NUMBER(38) | plan_cache 已经使用的内存 |
| MEM_HOLD | BIGINT(38) | NUMBER(38) | plan_cache 持有的内存 |
| ACCESS_COUNT | BIGINT(38) | NUMBER(38) | 查询访问 plan_cache 的次数 |
| HIT_COUNT | BIGINT(38) | NUMBER(38) | 命中 plan_cache 的次数 |
| HIT_RATE | BIGINT(38) | NUMBER(38) | plan_cache 的命中率 |
| PLAN_NUM | BIGINT(38) | NUMBER(38) | Plan 的个数 |
| MEM_LIMIT | BIGINT(38) | NUMBER(38) | plan_cache 的内存上限 |
| HASH_BUCKET | BIGINT(38) | NUMBER(38) | plan_cache Hash Map 中的 Bucket 的个数 |
| STMTKEY_NUM | BIGINT(38) | NUMBER(38) | plan_cache 中 stmt_key 的个数 |
(G)V$OB_PLAN_CACHE_PLAN_STAT 视图
(G)V$OB_PLAN_CACHE_PLAN_STAT 展示当前租户在当前(所有)OBServer 节点上的计划缓存中缓存的每一个缓存对象的状态。其字段信息如下表所示。
| 字段名称 | 类型(MySQL 模式) | 类型(Oracle 模式) | 描述 |
|---|---|---|---|
| TENANT_ID | BIGINT(20) | NUMBER(38) | 租户 ID |
| SVR_IP | VARCHAR2(46) | VARCHAR2(46) | 服务器的 IP 地址 |
| SVR_PORT | BIGINT(20) | NUMBER(38) | 服务器端口号 |
| PLAN_ID | BIGINT(20) | NUMBER(38) | 执行计划的 ID |
| SQL_ID | VARCHAR2(32) | VARCHAR2(32) | 该条 SQL 的 ID |
| TYPE | BIGINT(20) | NUMBER(38) | 对于 SQL 计划的缓存,该字段表示计划的类型:
|
| DB_ID | BIGINT(20) UNSIGNED | NUMBER(38) | 数据库的 ID |
| IS_BIND_SENSITIVE | BIGINT(20) | NUMBER(38) | 该计划是否需要打开 ACS |
| IS_BIND_AWARE | BIGINT(20) | NUMBER(38) | 该计划已经打开了 ACS |
| STATEMENT | LONGTEXT | CLOB | 参数化后的 SQL 语句 |
| QUERY_SQL | LONGTEXT | CLOB | 第一次加载计划时查询的原始 SQL 语句 |
| SPECIAL_PARAMS | VARCHAR2(4096) | VARCHAR2(4096) | 表示不可参数化的参数值 |
| PARAM_INFOS | LONGTEXT | CLOB | 表示参数化信息 |
| SYS_VARS | VARCHAR2(4096) | VARCHAR2(4096) | 影响缓存对象的系统变量的值 |
| CONFIGS | VARCHAR(4096) | 不支持该字段 | 表示影响执行计划的配置项信息 |
| PLAN_HASH | BIGINT(20) UNSIGNED | NUMBER(38) | SQL 执行计划的哈希值 |
| FIRST_LOAD_TIME | TIMESTAMP(6) | TIMESTAMP(6) WITH LOCAL TIME ZONE | 第一次被加载时间 |
| SCHEMA_VERSION | BIGINT(20) | NUMBER(38) | Schema 版本号 |
| LAST_ACTIVE_TIME | TIMESTAMP(6) | TIMESTAMP(6) WITH LOCAL TIME ZONE | 上一次被执行时间 |
| AVG_EXE_USEC | BIGINT(20) | NUMBER(38) | 平均执行时间 |
| SLOWEST_EXE_TIME | TIMESTAMP(6) | TIMESTAMP(6) WITH LOCAL TIME ZONE | 最慢执行时间戳 |
| SLOWEST_EXE_USEC | BIGINT(20) | NUMBER(38) | 最慢一次执行耗时 |
| SLOW_COUNT | BIGINT(20) | NUMBER(38) | 当前 SQL 计划成为慢查询的次数 |
| HIT_COUNT | BIGINT(20) | NUMBER(38) | 被命中次数 |
| PLAN_SIZE | BIGINT(20) | NUMBER(38) | 缓存对象占用的内存大小 |
| EXECUTIONS | BIGINT(20) | NUMBER(38) | 执行次数 |
| DISK_READS | BIGINT(20) | NUMBER(38) | 所有执行物理读次数 |
| DIRECT_WRITES | BIGINT(20) | NUMBER(38) | 所有执行写盘的次数 |
| BUFFERS_GETS | BIGINT(20) | NUMBER(38) | 所有执行逻辑读次数 |
| APPLICATION_WAIT_TIME | BIGINT(20) UNSIGNED | NUMBER(38) | 该请求执行过程中, 所有 Application 类事件的总时间 |
| CONCURRENCY_WAIT_TIME | BIGINT(20) UNSIGNED | NUMBER(38) | 该请求执行过程中, 所有 Concurrency 类事件的总时间 |
| USER_IO_WAIT_TIME | BIGINT(20) UNSIGNED | NUMBER(38) | 该请求执行过程中, 所有 USER_IO 类事件的总时间 |
| ROWS_PROCESSED | BIGINT(20) | NUMBER(38) | 所有执行选择的结果行数或执行更改表中的行数 |
| ELAPSED_TIME | BIGINT(20) UNSIGNED | NUMBER(38) | 所有执行接收到请求到执行结束消耗时间 |
| CPU_TIME | BIGINT(20) UNSIGNED | NUMBER(38) | 所有执行消耗的 CPU 时间 |
| LARGE_QUERYS | BIGINT(20) | NUMBER(38) | 被判断为大查询的次数 |
| DELAYED_LARGE_QUERYS | BIGINT(20) | NUMBER(38) | 被判断为大查询且被丢入大查询队列的次数 |
| DELAYED_PX_QUERYS | BIGINT(20) | NUMBER(38) | 并行查询被丢回队列重试的次数 |
| OUTLINE_VERSION | BIGINT(20) | NUMBER(38) | Outline 版本号 |
| OUTLINE_ID | BIGINT(20) | NUMBER(38) | Outline 的 ID。 如果为 -1 表示不是通过绑定 Outline 生成的计划 |
| OUTLINE_DATA | LONGTEXT | CLOB | 计划对应的 Outline 信息 |
| ACS_SEL_INFO | LONGTEXT | CLOB | 当前 ACS 计划对应的选择率空间 |
| TABLE_SCAN | TINYINT(4) | NUMBER(38) | 表示该查询是否为主键扫描 |
| EVOLUTION | TINYINT(4) | NUMBER(38) | 表示该执行计划是否在演进中 |
| EVO_EXECUTIONS | BIGINT(20) UNSIGNED | NUMBER(38) | 演进次数 |
| EVO_CPU_TIME | BIGINT(20) | NUMBER(38) | 演进过程中总的执行 CPU 时间 |
| TIMEOUT_COUNT | BIGINT(20) | NUMBER(38) | 超时次数 |
| PS_STMT_ID | BIGINT(20) | NUMBER(38) | Prepare Statement 的 ID |
| SESSID | BIGINT(20) UNSIGNED | NUMBER(38) | 缓存对象所在的 Session ID |
| TEMP_TABLES | LONGTEXT | CLOB | SQL 计划中包含的临时表表名。如果没有临时表,字段为空。 |
| IS_USE_JIT | TINYINT(4) | NUMBER(38) | SQL 计划是否开启了表达式编译执行 |
| OBJECT_TYPE | LONGTEXT | CLOB | 缓存对象的类型:
|
| HINTS_INFO | LONGTEXT | CLOB | SQL 计划的 Hint 信息 |
| HINTS_ALL_WORKED | TINYINT(4) | NUMBER(38) | SQL 计划中的 Hint 是否都已经生效 |
| PL_SCHEMA_ID | BIGINT(20) UNSIGNED | NUMBER(38) | 对于非匿名块的 PL 对象,字段为缓存对象的 Schema ID;对于匿名块,字段与 PS_STMT_ID 相同;对于 SQL 计划,该字段无意义。 |
| IS_BATCHED_MULTI_STMT | TINYINT(4) | NUMBER(38) | 表示是否为 Batched Multi Stmt 优化的计划 |
| RULE_NAME | VARCHAR(256) | 不支持该字段 | 表示是否命中用户自定义改写规则。 |
(G)V$OB_PLAN_CACHE_PLAN_EXPLAIN
(G)V$OB_PLAN_CACHE_PLAN_EXPLAIN 展示缓存在当前(全部)OBServer 节点中的计划缓存中的物理执行计划。其字段信息如下表所示。
| 字段名称 | 类型(MySQL 模式) | 类型(Oracle 模式) | 描述 |
|---|---|---|---|
| TENANT_ID | BIGINT(20) | NUMBER(38) | 租户 ID |
| SVR_IP | VARCHAR2(46) | VARCHAR2(46) | 服务器 IP 地址 |
| SVR_PORT | BIGINT(20) | NUMBER(38) | 服务器端口号 |
| PLAN_ID | BIGINT(20) | NUMBER(38) | 执行计划的 ID |
| PLAN_DEPTH | BIGINT(20) | NUMBER(38) | Operator 在展示时的深度 |
| PLAN_LINE_ID | BIGINT(20) | NUMBER(38) | Operator 的编号 |
| OPERATOR | VARCHAR2(128) | VARCHAR2(128) | 算子的名称 |
| NAME | VARCHAR2(256) | VARCHAR2(256) | 表的名称 |
| ROWS | BIGINT(20) | NUMBER(38) | 预估的结果行数 |
| COST | BIGINT(20) | NUMBER(38) | 预估的代价 |
| PROPERTY | VARCHAR2(4096) | VARCHAR2(4096) | 对应算子的信息 |