---
title: "自适应合并 - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: 自适应合并 OceanBase 数据库从 V4.1.0 版本开始支持自适应合并。开启自适应合并后，系统会实时采集并统计用户的查询、写入等信息，再根据这些信息来识别可能导致的查询慢的场景，自适应地调度合并任务，达到对用户无感知地解决相关场景可能导致的慢查询问题。自适应合并开启期间，系统以分区为维度进行统计信息的采集及合…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# 自适应合并

更新时间：2025-02-20 17:21:18

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/200.administrator-guide/200.basic-database-management/500.manage-data-storage/200.merge-management/320.adaptive-compaction.md)  

OceanBase 数据库从 V4.1.0 版本开始支持自适应合并。开启自适应合并后，系统会实时采集并统计用户的查询、写入等信息，再根据这些信息来识别可能导致的查询慢的场景，自适应地调度合并任务，达到对用户无感知地解决相关场景可能导致的慢查询问题。自适应合并开启期间，系统以分区为维度进行统计信息的采集及合并任务的调度。

使用自适应合并功能，可以解决如下问题：

- 避免一部分 Buffer 表问题的出现。
 - 优化导数场景下的查询性能。
 - 识别并规避一部分慢查询场景。

## 触发规则

当分区 Leader 满足一定条件时，系统就会自动为该分区及 Follower 副本调度自适应合并。自适应合并的触发规则如下：

- 系统通过分析一段时间内分区的统计信息，获取到该分区查询和转储的次数以及增量数据中 Insert 行数的占比，确认该场景是否为导数场景。如果是导数场景，则对该分区触发自适应合并。
 - 系统通过分析一段时间内分区的统计信息，获取到该分区转储的次数以及增量数据中更新和删除行的占比，确认该场景是否为导数场景。如果是导数场景，则对该分区触发自适应合并。
 - 系统通过统计分区增量数据的总行数，确认该场景是否为持续写入场景，如果是持续写入场景，系统对该分区触发自适应合并。
 - 系统通过查询扫描的数据量与实际有效数据的比例，确认针对该分区的查询是否为慢查询，如果为慢查询，系统对该分区触发自适应合并。

## 注意事项

- 自适应合并可以有效减少一部分查询慢的问题，如果您的业务对查询性能要求比较高，并且存在自适应合并所支持的场景时，建议不要关闭自适应合并功能。
 - 在 OceanBase 数据库中，名称以 "_" 开头的配置项均为隐藏配置项，仅供开发人员在故障排查或紧急运维时使用。如果确认需要关闭自适应合并功能，请联系技术支持人员协助处理。

## 开启或关闭自适应合并

自适应合并功能由租户级隐藏配置项 `_enable_adaptive_compaction` 进行控制，默认为开启状态。

由于自适应合并调度任务的执行会占用部分系统资源，如果不希望执行自适应合并操作，可以通过将租户级隐藏配置项 `_enable_adaptive_compaction` 的值修改为 `False` 来关闭自适应合并功能。关闭后，系统内部将不再进行自适应合并的调度。

1. 使用 `root` 用户登录集群的 `sys` 租户。
 2. 查询租户级隐藏配置项 `_enable_adaptive_compaction` 的值。

   ```shell
   obclient [oceanbase]> SELECT * FROM oceanbase.GV$OB_PARAMETERS WHERE NAME LIKE '_enable_adaptive_compaction';

   ```

   查询结果如下：

   ```shell
   +----------------+----------+-------+--------+-----------+-----------------------------+-----------+-------+---------------------------------------------------------------------------------+---------+-------------------+---------------+-----------+
   | SVR_IP         | SVR_PORT | ZONE  | SCOPE  | TENANT_ID | NAME                        | DATA_TYPE | VALUE | INFO                                                                            | SECTION | EDIT_LEVEL        | DEFAULT_VALUE | ISDEFAULT |
   +----------------+----------+-------+--------+-----------+-----------------------------+-----------+-------+---------------------------------------------------------------------------------+---------+-------------------+---------------+-----------+
   | 172.xx.xxx.xxx |     2882 | zone1 | TENANT |         1 | _enable_adaptive_compaction | NULL      | True  | specifies whether allow adaptive compaction schedule and information collection | TENANT  | DYNAMIC_EFFECTIVE | True          | YES       |
   | 172.xx.xxx.xxx |     2882 | zone1 | TENANT |      1001 | _enable_adaptive_compaction | NULL      | True  | specifies whether allow adaptive compaction schedule and information collection | TENANT  | DYNAMIC_EFFECTIVE | True          | YES       |
   | 172.xx.xxx.xxx |     2882 | zone1 | TENANT |      1002 | _enable_adaptive_compaction | NULL      | True  | specifies whether allow adaptive compaction schedule and information collection | TENANT  | DYNAMIC_EFFECTIVE | True          | YES       |
   | 172.xx.xxx.xxx |     2882 | zone1 | TENANT |      1003 | _enable_adaptive_compaction | NULL      | True  | specifies whether allow adaptive compaction schedule and information collection | TENANT  | DYNAMIC_EFFECTIVE | True          | YES       |
   | 172.xx.xxx.xxx |     2882 | zone1 | TENANT |      1004 | _enable_adaptive_compaction | NULL      | True  | specifies whether allow adaptive compaction schedule and information collection | TENANT  | DYNAMIC_EFFECTIVE | True          | YES       |
   +----------------+----------+-------+--------+-----------+-----------------------------+-----------+-------+---------------------------------------------------------------------------------+---------+-------------------+---------------+-----------+
   5 rows in set

   ```
 3. 修改租户级隐藏配置项 `_enable_adaptive_compaction` 的值，关闭或开启自适应合并功能。

   ```shell
   obclient [oceanbase]> ALTER SYSTEM SET _enable_adaptive_compaction = False TENANT = tenant_name;

   ```

   ```shell
   obclient [oceanbase]> ALTER SYSTEM SET _enable_adaptive_compaction = True TENANT = tenant_name;

   ```

## 相关文档

- [自动触发合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001699678)
 - [定时触发合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001699679)
 - [手动触发合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001699680)
 - [手动控制合并](https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001699681)

 上一篇 下一篇 ![有帮助](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) 咨询热线
