---
title: Batch NLJ+except op 正交导致查询结果错误-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 Batch NLJ+except op 正交导致查询结果错误相关的常见问题和使用技巧，帮助您快速解决 Batch NLJ+except op 正交导致查询结果错误的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# Batch NLJ+except op 正交导致查询结果错误

更新时间：2026-05-14 07:41

适用版本： V4.1.x、V4.2.x 内容类型：Troubleshoot  

## 问题现象

存在查询结果错误等正确性问题。

## 关键诊断信息

### 事后诊断

执行计划里存在 NLJ， NLJ 走 Batch Rescan，并且 NLJ 算子的右支子计划存在 except 算子，或者用户 SQL 里存在 except 或者 minus 等用法。

![image](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20250425batch-nlj-except-op-orthogonality-leads-to-incorrect-query-results.png)

## 问题原因

走到 Batch NLJ+except op 正交逻辑上时，如果第一行数据在 except 的所有 child 中都同时不存在数据，则逻辑上两个迭代器都为空，但 except op 的特殊在于当第一个 child 的迭代器为空时，就不会再去迭代第二个 child，这里就对第二个迭代器产生了短路效应，因此第二个迭代器在第一次 group rescan 的时候并没有被真正初始化。 当 NLJ 用第二行数据去 Rescan 时，期望的是对 NLJ 的右支都进行切迭代器动作，由于 except 的第二个迭代器第一次 Rescan 因为短路没有被初始化，所以切迭代器的流程中认为结果为空（实际上没有执行真正的 Rescan 动作），将 `iter_end_` 标记为 true，所以不会有数据返回。

## 问题的风险及影响

可能会带来正确性问题。

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户和 MySQL 租户，对于 SYS 租户无影响。

## 影响版本

OceanBase 数据库企业版 V4.1.0 GA（oceanbase-4.1.0.0-100001122023040322）及之后版本、V4.2.1 GA（oceanbase-4.2.1.0-100000182023092722）及之后版本。

## 解决方法

升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V4.2.1 BP2（oceanbase-4.2.1.2-102010012023120119）及之后版本。

## 规避方式

NLJ Batch 优化关掉：`set global _nlj_batching_enabled=false;`。

Previous

[业务 SQL 响应时长偶发连续超长](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003899663)

Next

[低版本禁用 SPM](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002762857) ![有帮助](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) 咨询热线
