向量索引内存管理
本文档介绍如何估算和管理 seekdb 中所有类型向量索引的内存占用。
配置向量索引内存
seekdb 向量搜索通过设置 ob_vector_memory_limit_percentage 配置向量索引内存:
该参数默认值为 0 ,表示自适应模式,即系统自动调整实例中的向量索引数据的内存占用比例,无需手动调整:
- 实例实际内存为 8GB 及以下时,该值自适应为
40。 - 实例实际内存为 8GB 以上时,该值自适应为
50。
索引内存估算与实际占用查询
支持通过 DBMS_VECTOR 系统包进行索引内存估算:
- 未建表时,通过 INDEX_VECTOR_MEMORY_ADVISOR 过程估算索引内存。
- 已建表且插入数据时,通过 INDEX_VECTOR_MEMORY_ESTIMATE 过程分析索引内存。
向量索引内存估算会返回两项信息:创建向量索引所需的最少内存配置,以及 HNSW_SQ 和 IVF 索引创建完成后的实际内存占用情况。
提示
对于内存稀疏索引,IDX_TYPE 参数必须指定为 SINDI(不区分大小写),否则内存估算将无法进行。
实际占用内存的详细信息可以通过视图 GV$OB_VECTOR_MEMORY 或 V$OB_VECTOR_MEMORY 获取。
索引重建内存优化
对于分区表的向量索引重建操作,我们还提供了 vector_index_memory_saving_mode 配置项来控制索引重建的内存占用。开启此模式可以降低分区表向量索引重建(rebuild)过程中的内存消耗。通常,向量索引重建需要消耗相当于索引两倍的内存。开启省内存模式后,系统会在分区表单个分区构建完成后,通过暂时删除该分区的内存索引来释放内存,从而有效降低重建操作所需的总内存。语法和示例请参见vector_index_memory_saving_mode。