select * 查询性能低下

【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1.8 Oracle租户
【问题描述】此查询语句在测试环境秒出,在生产上查询缓慢,一条千万级别表select * 查询数据时间60s
【复现路径】查询前后均执行了收集统计信息,但是作用不大
【附件及日志】使用obdiag收集了SQL事件id的数据
obdiag_gather_pack_20250117110029.tar.gz (1.1 MB)

2 个赞

查询的数据量多少,看下测试环境和生产环境的SQL_AUDIT中返回的行数是否一样

生产:10675215 执行时间:65.88s
测试:10668584 执行时间:8.11ms

生产架构是啥样的

ocp+3observer

你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。

查询的数据量多少,看下测试环境和生产环境的SQL_AUDIT中返回的行数是否一样

这个问题后面经人员排查为3.x和4.x后台返回时间不存在差异,主要是ODC对于两个版本处理的差异

ODC对4X的内核没有做适配,例如:3X查询1000W的数据,默认是返回1000行就终止了,但是4X是要把1000W全部数据查出来,然后返回前1000行,所以执行效率上是有差异的,想要辨别行为的差异,可以通过查询SQL_AUDIT中返回的行数做判断

已学习