---
title: 影响 plan_id 共享的 sys_vars 变量-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 影响 plan_id 共享的 sys_vars 变量相关的常见问题和使用技巧，帮助您快速解决 影响 plan_id 共享的 sys_vars 变量的难题。
---
切换语言

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

划线反馈

# 影响 plan_id 共享的 sys_vars 变量

更新时间：2026-05-14 09:21

适用版本： V3.1.x、V3.2.x 内容类型：TechNote  

SQL_ID 用于唯一确定一个查询语句，它是由查询语句经过快速参数化后得到的字符串的 MD5 值，返回 128 位的哈希值。相同文本的 SQL 的 SQL_ID 总是相同的。 ​ Plan_ID 用于在单个 OBServer 上唯一确定 plan_cache 中的一个 plan，plan_id 是 OBServer 启动后通过一个本地范围内的自增序列产生的值，OBServer 重启后，plan_id 会重置。 ​ Plan cache 是租户间隔离的，在一台 OBServer 中，plan_id 和 tenant_id 一起决定一个执行计划。 ​ 当前 OceanBase 数据库的 plan cache 中，SQL_ID 相同的语句想共享 plan_id 会受到一些变量的影响，这些变量体现在 `gv$plan_cache_plan_stat` 的 `sys_var` 字段中，相关内容如下。

| 变量 | 含义 |
| --- | --- |
| collation_connection | 用于设置连接使用的字符集和字符序 |
| sql_mode | 用于设置 SQL 模式，不同的 SQL 模式对于数据库行为有很大影响 |
| binlog_row_image | 用于控制是否记录全列日志。 |
| div_precision_increment | 用于设置除法结果精度在被除数精度基础上的增量，是 MySQL 兼容功能 |
| explicit_defaults_for_timestamp | 用于指定 timestamp 数据类型在处理默认值和空值时是否启用非标准行为 |
| read_only | 用于设置租户是否为只读模式 |
| sql_auto_is_null | 用于控制 ODBC 等特殊的驱动程序是否获取最后插入行的自增列值 |
| ob_max_parallel_degree | 用于设置每次请求最大的并发数 |
| ob_read_consistency | 用于设置读一致性级别 |
| ob_enable_transformation | 用于设置是否开启 SQL 优化器的改写功能 |
| ob_enable_index_direct_select | 用于设置是否允许用户直接查询索引表 |
| ob_enable_hash_group_by | 用于设置是否打开 Hash Group by 的路径 |
| ob_enable_blk_nestedloop_join | 用于设置是否允许打开 block nested loop join |
| ob_bnl_join_cache_size | 用于设置 batch nest loop join 一次 cache 多少数据做一次 batch |
| ob_stmt_parallel_degree | 用于设置查询的并行度，即可以并行运行的任务数。该变量已不再使用 |
| ob_route_policy | 用于设置 OBProxy 或 Java 客户端与 OBServer 内部重试的路由策略 |
| ob_enable_jit | 用于设置 JIT 执行引擎模式 |
| _ob_use_parallel_execution | 用于判断是否开启并行，0 表示关闭，1 表示开启。 |
| nls_sort | 表示字符串值的排序规则 |
| nls_comp | 表示字符串值的比较规则 |
| nls_nchar_characterset | 表示数据库默认字符集，用于 NCHAR、NVARCHAR2、NCLOB 等数据类型 |
| nls_length_semantics | 表示 char、varchar2 类型 的 length 语义 |
| nls_characterset | 用于查看数据库中 CHAR、VARCHAR2、CLOB 等数据类型的默认字符集 |
| nls_nchar_conv_excp | 用于控制 NCHAR/NVARCHAR2 与 CHAR/VARCHAR2 之间转换丢失数据时是否报错 |
| _nlj_batching_enabled | 用于控制 NLJ 中是否使用 batch join 的方式来 join 右表（一次性把多条记录推到右表去进行 join） |
| secure_file_priv | 用于控制导入或导出到文件时可以访问的路径。仅 DBA 可以设置该变量，其他人无法设置 |
| _enable_parallel_query | 控制默认情况下 PX 的 query 的 parallel 的开关 |
| _force_parallel_query_dop | 控制 query 执行默认的并行度 |
| ob_enable_aggregation_pushdown | 用于设置是否允许聚合操作下压 |

可通过下述步骤重现。

1. 连接业务租户，执行下述变更。

   ```
   --执行两次查询
   obclient [U_LXL]> select count(*) records from NGCRM_XX.IM_PR_COMRESPHONE tst;
   +---------+
   | RECORDS |
   +---------+
   | 3319193 |
   +---------+
   1 row in set (0.306 sec)

   obclient [U_LXL]> select count(*) records from NGCRM_XX.IM_PR_COMRESPHONE tst;
   +---------+
   | RECORDS |
   +---------+
   | 3319193 |
   +---------+
   1 row in set (0.245 sec)

   --修改一个已经废止的变量ob_max_parallel_degree
   obclient [U_LXL]> show variables like 'ob_max_parallel_degree';
   +------------------------+-------+
   | VARIABLE_NAME          | VALUE |
   +------------------------+-------+
   | ob_max_parallel_degree | 32    |
   +------------------------+-------+
   1 row in set (0.012 sec)

   obclient [U_LXL]> set ob_max_parallel_degree=64;
   Query OK, 0 rows affected (0.001 sec)

   --重新查询两次
   obclient [U_LXL]> select count(*) records from NGCRM_XX.IM_PR_COMRESPHONE tst;
   +---------+
   | RECORDS |
   +---------+
   | 3319193 |
   +---------+
   1 row in set (0.273 sec)

   --还原被废止的环境变量后重新查询
   obclient [U_LXL]> set ob_max_parallel_degree=32;
   Query OK, 0 rows affected (0.001 sec)

   obclient [U_LXL]> select count(*) records from NGCRM_XX.IM_PR_COMRESPHONE tst;
   +---------+
   | RECORDS |
   +---------+
   | 3319193 |
   +---------+
   1 row in set (0.247 sec)

   ```
 2. 连接 SYS 租户，进行分析。

   ```
   --可以看到生成了两次 plan_id
   obclient [oceanbase]> select TRACE_ID,sql_id,PLAN_ID,USER_NAME,SVR_IP,SVR_PORT from gv$sql_audit where query_sql = 'select count(*) records from NGCRM_XX.IM_PR_COMRESPHONE tst';
   +-----------------------------------+----------------------------------+---------+-----------+---------------+----------+
   | TRACE_ID                          | sql_id                           | PLAN_ID | USER_NAME | SVR_IP        | SVR_PORT |
   +-----------------------------------+----------------------------------+---------+-----------+---------------+----------+
   | YB420A6C9B05-0005FE2684CAA018-0-0 | 40C8A2FBE379C0CD53A00467E969B27D |    3631 | U_LXL     | xxx.xxx.xxx.xxx  |     xxxx |
   | YB420A6C9B05-0005FE266EBAC3DF-0-0 | 40C8A2FBE379C0CD53A00467E969B27D |    3631 | U_LXL     | xxx.xxx.xxx.xxx  |     xxxx |
   | YB420A6C9B05-0005FE266EBAC3E0-0-0 | 40C8A2FBE379C0CD53A00467E969B27D |    3635 | U_LXL     | xxx.xxx.xxx.xxx  |     xxxx |
   | YB420A6C9B05-0005FE267FFAA051-0-0 | 40C8A2FBE379C0CD53A00467E969B27D |    3635 | U_LXL     | xxx.xxx.xxx.xxx  |     xxxx |
   | YB420A6C9B05-0005FE266F1AC423-0-0 | 40C8A2FBE379C0CD53A00467E969B27D |    3631 | U_LXL     | xxx.xxx.xxx.xxx  |     xxxx |
   +-----------------------------------+----------------------------------+---------+-----------+---------------+----------+
   5 rows in set (12.088 sec)

   --可以看到 两个 Plan_id 的 sys_var 不一致
   obclient [oceanbase]> select sys_vars,plan_id from oceanbase.gv$plan_cache_plan_stat where sql_id='40C8A2FBE379C0CD53A00467E969B27D' and svr_ip='xxx.xxx.xxx.xxx' and PLAN_ID in(xxxx,xxxx);
   +-----------------------------------------------------------------------------------------------------------------------------------------+---------+
   | sys_vars                                                                                                                                | plan_id |
   +-----------------------------------------------------------------------------------------------------------------------------------------+---------+
   | 45,46,2151677954,2,4,1,0,0,32,3,1,0,1,1,0,10485760,1,1,0,1,BINARY,BINARY,ZHS16GBK,AL16UTF16,BYTE,FALSE,1,100,64,200,0,13,NULL,1,1,1,1,0 |    xxxx |
   | 45,46,2151677954,2,4,1,0,0,64,3,1,0,1,1,0,10485760,1,1,0,1,BINARY,BINARY,ZHS16GBK,AL16UTF16,BYTE,FALSE,1,100,64,200,0,13,NULL,1,1,1,1,0 |    xxxx |
   +-----------------------------------------------------------------------------------------------------------------------------------------+---------+
   2 rows in set (0.027 sec)

   ```

## 适用版本

OceanBase 数据库 V3.x 版本

上一篇

[远程执行的 SQL 在 PLAN CACHE 中有 2 个执行计划](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217878)

下一篇

[统计信息时间查询](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000450140) ![有帮助](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) 咨询热线
