This issue requires an assignee. Since you haven't specified one, we've assigned TestManager as the default assignee for this issue.


Welcome To openGauss Community
Hey @smyyy , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands.
Contact Guide
If you have any questions, please contact the SIG: StorageEngine, AI, CM, CloudNative, SecurityTechnology, SQLEngine ,
and any of the maintainers: @CarrotGo, @chendong76, @chenxiaobin19, @congzhou2603, @dodders, @hwworkholic, @jemappellehc, @muyulinzhong, @quemingjian, @shenzheng4, @shirley_zhengx, @superlchf, @totaj, @wlff234, @wofanzheng, @ywzq1161327784 ,
and any of the committers: @Igali, @bihua111, @cailei19, @h_ray, @levy53071, @libiao2024, @lihaixiao, @mrzack, @wangfeihuo, @wuyuechuan, @xiong_xjun, @zhangfengzhi123, @zhangxubo, @zhangzq131, @zjh_hw .


感谢提出新需求。
需求背景
随着向量检索能力在数据库中的使用增加,系统中逐步引入了 IVF、IVF-PQ、HNSW、BM25 等索引类型,用于支撑近似向量检索、文本检索以及混合检索场景。在实际业务运行和问题定位过程中,仅依赖执行结果或执行计划,难以直观判断向量索引是否被正常使用、索引构建是否耗时异常、距离计算是否过多、索引扫描是否返回有效结果,以及 ANN 近似检索结果与 exact 精确结果之间的差异。
当前系统缺少面向向量索引的统一 DFX 观测能力。当出现以下问题时,定位成本较高:
1.向量索引是否真正被扫描;
2.IVF、IVF-PQ、HNSW、BM25 等索引的扫描次数和返回情况;
3.索引构建耗时是否异常;
4.向量距离函数调用次数是否过高;
5.ANN 检索返回结果质量如何;
6.recall / precision 是否符合预期;
7.当前节点上向量索引数量和内存占用情况。
因此,需要增强向量索引相关 DFX 能力,通过系统视图暴露关键运行指标,为性能分析、问题定位、质量评估和回归测试提供可观测数据。
需求描述
本需求面向向量索引和向量距离计算场景,新增一组 DFX 统计能力,用于采集和展示向量索引在构建、扫描、返回、距离计算、内存占用、索引数量、召回率和精确率等方面的运行状态。
系统需要在不改变 SQL 执行语义、不影响查询结果正确性的前提下,对向量索引相关路径进行轻量级埋点,并通过系统视图提供查询入口。用户或测试人员可以通过视图查看当前节点上的向量索引 DFX 统计信息。
本功能主要包括以下 6 类能力:
1.向量索引内存统计;
2.向量索引构建耗时统计;
3.向量距离计算次数统计;
4.向量索引命中率统计;
5.向量索引召回率 / 精确率统计;
6.向量索引数量统计。
需求目标
1.提供统一的向量索引观测入口
通过系统视图提供向量索引运行状态查询能力,便于用户、测试人员和开发人员直接通过 SQL 查询 DFX 信息。
2.支持索引构建阶段性能分析
统计不同类型向量索引的构建耗时,辅助判断索引构建是否存在性能异常。
3.支持距离计算开销分析
统计不同距离函数的调用次数,包括 L2、IP、Cosine、L1、Hamming、Jaccard 等距离类型,辅助分析查询执行过程中距离计算开销。
4.支持索引扫描有效性分析
统计索引扫描次数、候选结果数量、返回结果数量,并计算命中率指标,辅助判断索引扫描是否有效。
5.支持 ANN 查询质量评估
在开启 recall / precision DFX 开关后,对 ANN 返回结果和 exact TopK 结果进行对比,计算召回率和精确率,辅助评估 IVF、IVF-PQ、HNSW、BM25 等索引的近似检索质量。
6.支持索引资源使用分析
统计当前节点向量索引数量和内存占用情况,辅助判断向量索引资源消耗。
适用场景
本功能适用于以下场景:
1.向量索引性能分析
用户需要判断 IVF、IVF-PQ、HNSW、BM25 等索引的构建耗时、扫描次数、候选数量和返回数量。
2.向量查询执行诊断
当向量查询性能异常时,可以通过距离计算次数、索引命中统计等信息判断是否存在距离计算过多、索引未有效过滤等问题。
3.ANN 检索质量评估
当需要验证 ANN 检索结果质量时,可以开启 recall / precision DFX,比较 ANN 返回结果与 exact TopK 结果之间的差异。
4.回归测试验证
测试用例可以通过 DFX 视图检查向量索引是否被正确创建、正确扫描、正确返回结果,以及统计信息是否符合预期。
5.资源占用分析
运维或开发人员可以查看节点上的向量索引数量和内存使用情况,辅助定位资源占用问题。
其他说明
非目标范围
本需求不包括以下内容:
1.不改变向量索引扫描结果;
2.不改变向量索引构建逻辑;
3.不改变优化器路径选择;
4.不自动调整 IVF lists、HNSW ef_search、PQ 参数等索引参数;
5.不保证 recall / precision 统计在默认情况下开启;
6.不将 recall / precision 内部 exact 扫描产生的距离计算计入普通距离统计;
7.不通过统计信息改变 SQL 执行语义。
预期效果
1.用户可以通过系统视图查看向量索引 DFX 统计信息;
2.可以观察向量索引构建耗时;
3.可以观察不同距离函数的调用次数;
4.可以观察向量索引扫描次数、候选数量、返回数量和命中率;
5.可以在开启开关后观察 ANN 检索的召回率和精确率;
6.可以观察当前节点向量索引数量和内存占用;
7.DFX 统计不影响原 SQL 查询结果;
8.recall / precision 默认关闭,避免对普通业务查询引入额外开销。
验收标准
1.创建向量索引后,可以查询到对应索引类型的构建耗时统计。
2.执行向量距离计算后,可以查询到对应距离类型的计算次数。
3.执行 HNSW / HNSW-PQ 查询后,对应索引类型的统计能正确增长。
4.执行 BM25 查询后,BM25 统计能正确增长。
5.开启 guc 参数后,执行支持的向量索引查询,可以展示 recall / precision 统计。
6.未开启 guc 参数时,不进行 recall / precision 统计。
7.recall / precision 内部 exact 扫描产生的距离计算不计入距离函数统计。
8.可以展示当前节点向量索引数量。
9.可以展示当前节点向量索引内存占用信息。
10.DFX 功能开启或关闭均不改变原查询结果语义。