---
title: OceanBase 数据库中问题 SQL 限流到 0 后 CPU 使用率未降低-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OceanBase 数据库中问题 SQL 限流到 0 后 CPU 使用率未降低相关的常见问题和使用技巧，帮助您快速解决 OceanBase 数据库中问题 SQL 限流到 0 后 CPU 使用率未降低的难题。
---
切换语言

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

划线反馈

# OceanBase 数据库中问题 SQL 限流到 0 后 CPU 使用率未降低

更新时间：2024-01-30 03:21

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

本文介绍 OceanBase 数据库中问题 SQL 限流到 0 后 CPU 使用率未降低的原因和解决方法。

## 问题描述

在 OceanBase 数据库中，当出现一个问题 SQL 导致 CPU 使用率超限的场景时，将该问题 SQL 限流为 0 后，仍然出现高 CPU 使用率的情况。

## 适用版本

OceanBase 数据库 V2.x 和 V3.x版本。

## 问题原因

问题出现在限流操作中，由于该问题 SQL 限流为 0 会导致 SQL 匹配计划时报错，因此每次获取计划都会直接报错。这样每次获取计划都会失败，就会认为没有获取到计划，需要重新生成计划。这导致每次 SQL 进来都会进行硬解析，从而导致 CPU 使用率很高。

## 解决方法

OceanBase 数据库中采用 outline 绑定到 SQL 上实现 SQL 的限流，通过 HINT 索引 `/*+max_concurrent(1)*/` 将该问题 SQL 限流限制规则设置为 1。

示例如下。

```shell
obclient> ALTER OUTLINE o1_1 ADD SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 = 1 and c2 = ?;

```

有关 outline 实现 SQL 的限流更多内容可参考 [ALTER OUTLINE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221380)。

上一篇

[NLJ 和 SPF 中 Rescan 的性能问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217882)

下一篇

[SQL 执行报错 errcode=-5307](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000467994) ![有帮助](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) 咨询热线
