【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
关系型数据表和向量数据表通过条件过滤再按照向量cosine距离排序取topk为什么检索结果经常少于要取的值,很多结果检索不出来,还会退化成全表扫描,查询速度很慢。有什么解决方案
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
3 个赞
论坛小助手
#3
针对您描述的情况,这可能是由于查询优化器选择了非最优的查询计划,或者是因为索引使用不当导致了性能下降。为了解决这个问题,建议先使用 obdiag 工具来收集 SQL 性能相关信息,并根据收集到的数据进行进一步的分析。
推荐使用 obdiag 工具进行日志采集,以获取有关 SQL 性能的问题详细信息,并将采集到的日志提供给我们以便确认问题所在。
日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”
在此过程中,请确保将实际的数据库连接信息(包括主机地址、端口、用户名、密码及数据库名)替换上述命令中的占位符(-h127.0.0.1 -P2881 -utest@test -p****** -Dtest)。同时,trace_id 参数用于指定追踪ID,您可以将其替换为实际查询过程中生成的trace_id值,以便更精确地定位问题。
另外,为了确定具体的问题,在此需要您提供一些额外的信息:(下面提出几个问题)
- 您当前的 OceanBase 版本是什么?
- 在您的查询中,是否对关系型数据表和向量数据表都建立了适当的索引?
- 查询语句的具体内容是什么?特别是关于条件过滤和排序部分。
- 是否启用了任何特定的优化设置或参数调整?
- 能否提供一个具体的查询示例及其执行计划(EXPLAIN 输出)?
- 您是否有监控系统记录了查询执行时间和资源消耗情况的变化趋势?
通过上述信息,我们可以更好地理解问题的本质,并为您提供更有效的解决方案。
附上敏捷诊断工具 obdiag 使用帮助链接
1 个赞
辞霜
#4
麻烦能详细给一下场景么 包括查询sql文本,执行计划,结果比对
1 个赞