---
title: 循环 INSERT 执行时间越来越慢-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 循环 INSERT 执行时间越来越慢相关的常见问题和使用技巧，帮助您快速解决 循环 INSERT 执行时间越来越慢的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# 循环 INSERT 执行时间越来越慢

更新时间：2024-01-22 01:56

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

## 问题描述

在 OceanBase 数据库的存储过程中存在循环插入一条数据的 INSERT 语句，开始前面 INSERT IS_HIT_PLAN: 1 耗时 20ms 左右，到后面IS_HIT_PLAN: 0，耗时从 40ms 逐渐到了 200 多 ms。

日志中有报错信息 `get cache obj by sql failed`。

![insert0001.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/insert0001.png)

日志中有报错信息 `Cache Object Memory Leaked Much`。

![insert0001.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/insert0002.png)

## 适用版本

OceanBase 数据库 V3.2.3（oceanbase-3.2.3.0-20220418212020）以下版本。

## 问题原因

plan cache 未命中的原因是参数化的时候递归到like表达式的时候打上了 `is_child_not_param_` 的标记，出这层递归的时候 `is_child_not_param_` 的标记没有被清掉，所以后面所有的 question mark 表达式都被识别成了不能参数化的常量。

## 解决方法

升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V3.2.3 BP8（oceanbase-3.2.3.3-108000062023041511）及之后版本。

上一篇

[自关联外键场景批量 insert 数据报错 -1452](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000409003)

下一篇

[Oracle 模式 INSERT ALL INTO 报错 ORA-02291](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000429362) ![有帮助](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) 咨询热线
