---
title: in expr 中参数较多时生成计划慢-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 in expr 中参数较多时生成计划慢相关的常见问题和使用技巧，帮助您快速解决 in expr 中参数较多时生成计划慢的难题。
---
切换语言

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

划线反馈

# in expr 中参数较多时生成计划慢

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

适用版本： V3.2.x 内容类型：Troubleshoot  

## 问题现象

业务反馈在 in expr 中的参数较多（>3000）时，第一次执行生成计划时很慢（7s+）。

![image001](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20241231inexpr001.png)

第二次执行走 plan cache 时，时间降到 1s 内（0.23s）。

![image002](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/20241231inexpr002.png)

第一次执行时生成计划太慢，性能较差，需要修复

## 关键诊断信息

### 触发条件

in 参数多。

## 问题原因

对 in expr 抽取 query range 时，会将 in 中的每个参数都会生成一个用于描述 range 的结构（ObKeyPart），key part 之间以 or 的形式连接成一个 range graph，当 in expr 的参数很多时，生成的 range graph 会非常庞大，在抽 range 的阶段，会对这个 range 中的 key part 进行大量内存分配、深拷、递归遍历等耗时操作，成为了性能瓶颈。

## 问题的风险及影响

生成计划时间长，可能会影响线上业务。

## 影响租户

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

## 影响版本

OceanBase 数据库企业版本 V3.2.3 GA（oceanbase-3.2.3.0-20220418212020）及之后版本、V3.2.4 GA（oceanbase-3.2.4.0-100000072022102819）及之后版本。

## 解决方法及规避方式

- 解决方法：

  升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V3.2.3 BP6（oceanbase-3.2.3.3-106000102022111521）及之后版本。
 - 规避方式：

  减少 in 参数。

上一篇

[OceanBase 数据库如何固化视图中 SQL 的执行计划](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217884)

下一篇

[如何通过 SQL_ID 查询实时执行计划](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000195) ![有帮助](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) 咨询热线
