---
title: "向量索引内存管理 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 向量索引内存管理 本文档介绍如何估算和管理 OceanBase 数据库中 所有类型向量索引 的内存占用。 配置向量索引内存 OceanBase 向量搜索通过设置 ob_vector_memory_limit_percentage 配置向量索引内存： 该参数默认值为 0 ，表示自适应模式，即系统自动调整租户中的向量索引…
---
切换语言

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

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

# 向量索引内存管理

更新时间：2026-06-28 18:39:36

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/640.ob-vector-search/200.ob-vector-index/200.ob-vector-index-memory-management.md)  

本文档介绍如何估算和管理 OceanBase 数据库中**所有类型向量索引**的内存占用。

## 配置向量索引内存

OceanBase 向量搜索通过设置 [ob_vector_memory_limit_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685456) 配置向量索引内存：

该参数默认值为 `0` ，表示自适应模式，即系统自动调整租户中的向量索引数据的内存占用比例，无需手动调整：

- 租户实际内存为 8GB 及以下时，该值自适应为 `40`。
 - 租户实际内存为 8GB 以上时，该值自适应为 `50`。

## 索引内存估算与实际占用查询

支持通过 `DBMS_VECTOR` 系统包进行索引内存估算：

- 未建表时，通过 [INDEX_VECTOR_MEMORY_ADVISOR](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686458) 过程估算索引内存。
 - 已建表且插入数据时，通过 [INDEX_VECTOR_MEMORY_ESTIMATE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686457) 过程分析索引内存。

向量索引内存估算会返回两项信息：创建向量索引所需的最少内存配置，以及 HNSW_SQ 和 IVF 索引创建完成后的实际内存占用情况。

#### 注意

对于内存稀疏索引

- `IDX_TYPE` 参数须指定为 `SINDI`或`SINDI_SQ`（不区分大小写）。
 - 稀疏向量的内存估算依赖稀疏向量的平均长度，即每条向量中非零维度数量的平均值。

实际占用内存的详细信息可以通过视图 [GV$OB_VECTOR_MEMORY](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684596) 或 [V$OB_VECTOR_MEMORY](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005684585) 获取。

## 索引重建内存优化

对于分区表的向量索引重建操作，我们还提供了 `vector_index_memory_saving_mode` 配置项来控制索引重建的内存占用。开启此模式可以降低分区表向量索引重建（rebuild）过程中的内存消耗。通常，向量索引重建需要消耗相当于索引两倍的内存。开启省内存模式后，系统会在分区表单个分区构建完成后，通过暂时删除该分区的内存索引来释放内存，从而有效降低重建操作所需的总内存。语法和示例请参见[vector_index_memory_saving_mode](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685408)。

## HNSW 系列索引增量段数据持久化与合并控制

向量索引在分区内按 **段（Segment）** 组织。根据 [向量索引原理](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005699342)，可分为：

- 基线段（Baseline Segment）：只读段，每个分区通常只有一个。
 - 增量段（Incremental Segment）：由 DML 写入产生，类型有活跃增量段（Active Segment）、冻结增量段（Frozen Segment）和已持久化增量段（Persistence Incremental Segment）。

针对单个分区，可通过以下配置项分别控制活跃增量段的冻结落盘时机，以及增量段与基线段的合并时机：

### 持久化

`ob_vector_index_active_segment_max_size` 用于控制 HNSW 系列索引单分区内**活跃增量段**的最大内存占用量。当活跃增量段内存超过该阈值时，系统会触发冻结；冻结完成后，该段变为冻结增量段。冻结增量段完成持久化落盘后，成为已持久化增量段。

#### 注意

冻结增量段落盘为已持久化增量段后并不会立即释放内存，需等后台合并任务将其合并进基线段后，内存才会降低。

语法和示例请参见 [ob_vector_index_active_segment_max_size](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005703482)。

### 合并

`ob_vector_index_merge_trigger_percentage` 用于控制持久化增量段内存占持久化后的分区索引总内存的比例。当增量段占比超过该值时，系统将自动触发段合并（Segment Merge），将增量段与基线段合并。

两个配置项的区别：

| 配置项 | 控制对象 | 触发操作 |
| --- | --- | --- |
| ob_vector_index_active_segment_max_size | 活跃增量段内存（绝对值） | 冻结并落盘，变为冻结增量段/已持久化增量段 |
| ob_vector_index_merge_trigger_percentage | 持久化增量段占持久化后的分区索引总内存的比例 | 段合并，与基线段合并 |

#### 说明

上述配置分别作用于“增量写入与落盘”以及“增量段与基线段合并”两条链路，二者配合可平衡写入性能、查询性能与内存占用。

语法与示例请参见 [ob_vector_index_merge_trigger_percentage](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005703483)。

## 相关文档

- [向量索引概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682093)
 - 查看 Segment 信息、了解索引分区自动重建功能、手动强制合并等请参见[索引监控与维护](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682087)
 - [向量索引原理](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005699342)

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