基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
远程执行中 DAS 计划出现正确性问题
更新时间:2026-05-14 07:41
问题现象
在远程执行计划中,带有 DAS 算子,在特定场景下会出现正确性问题。
关键诊断信息
触发条件
查询中全是至少包含三张表 t1,t2,t3 并且两张表的 Leader 在 Server A 上,另一张在 Server B 上,连接 B Server 查询。
查询存在重试,第一次远程执行为文本执行,在远程节点生成的计划并非 Local 计划,退回原始节点重试,并发送计划执行。
查询中存在相关子查询,子查询内部为 NLJ 计划,其中相关子查询条件不可抽取 Query Range,并且条件压到了内部子查询的右表,并且该右表为 DAS,子查询能查出结果。
事前巡检
无。
事后诊断
查询 SQL AUDIT 存在重试,计划类型为远程执行。
连接不同的节点查看计划,查询计划有较大的差距。
查看计划,存在相关子查询,子查询中的表存在动态参数的 Filter(注意不是 Query Range),例如
filter([t2.c2 = :0])。
问题原因
在远程计划执行同时存在 DAS 时,计划会被序列化两次,其中计划中的表达式内存序列化不正确。
问题的风险及影响
出现正确性问题。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.2.1 BP11 Hotfix8(oceanbase-4.2.1.11-111080012025082014)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V4.2.1 BP11 Hotfix9(oceanbase-4.2.1.11-111090012025091215)、V4.2.1 BP11 Hotfix10(oceanbase-4.2.1.11-111100012025092309)、V4.2.1 BP11 Hotfix11(oceanbase-4.2.1.11-111110012025101314)。
规避方式
Hint 指定不使用 ADS 计划,如
/*+ NO_USE_DAS(xxx) */。指定并行度至少为 2,如
/*+ PARALLEL(2) */。