首批通过分布式安全可靠测评,为关键业务系统打造
向量索引内存管理
更新时间:2026-04-07 20:57:20
本文档介绍如何估算和管理 OceanBase 数据库中向量索引的内存占用。
配置向量索引内存
OceanBase 向量搜索通过设置 ob_vector_memory_limit_percentage 配置向量索引内存:
V4.3.5 BP3 版本之前,使用 HNSW/HNSW_SQ/HNSW_BQ 向量索引前,需要手动设置
ob_vector_memory_limit_percentage开启向量功能,建议设置为30,以获得最佳的搜索性能。如保持默认值,则表示不为向量索引分配内存,创建索引会报错。IVF/IVF_PQ 索引不需要常驻内存,所以无需关注此参数。配置示例如下:ALTER SYSTEM SET ob_vector_memory_limit_percentage = 30;从 V4.3.5 BP3 版本开始,向量搜索功能默认启用。默认值为
0表示自适应模式,即系统自动调整租户中的向量索引数据的内存占用比例,无需手动调整:- 租户实际内存为 8GB 及以下时,该值自适应为
40。 - 租户实际内存为 8GB 以上时,该值自适应为
50。
- 租户实际内存为 8GB 及以下时,该值自适应为
索引内存估算与实际占用查询
支持通过 DBMS_VECTOR 系统包进行索引内存估算:
- 未建表时,通过 INDEX_VECTOR_MEMORY_ADVISOR 过程估算索引内存。
- 已建表且插入数据时,通过 INDEX_VECTOR_MEMORY_ESTIMATE 过程分析索引内存。
向量索引内存估算会返回两项信息:创建向量索引所需的最少内存配置,以及 HNSW_SQ 和 IVF 索引创建完成后的实际内存占用情况。
实际占用内存的详细信息可以通过视图 GV$OB_VECTOR_MEMORY 或 V$OB_VECTOR_MEMORY 获取。
索引重建内存优化
对于分区表的向量索引重建操作,我们还提供了 vector_index_memory_saving_mode 配置项来控制索引重建的内存占用。开启此模式可以降低分区表向量索引重建(rebuild)过程中的内存消耗。通常,向量索引重建需要消耗相当于索引两倍的内存。开启省内存模式后,系统会在分区表单个分区构建完成后,通过暂时删除该分区的内存索引来释放内存,从而有效降低重建操作所需的总内存。语法和示例请参见vector_index_memory_saving_mode。