道阻且長
#1
企业版OB 3.1.2版本,OB MySQL租户;大表和小表关联查询无法返回数据,小表100条数据,大表几亿条,将关联查询的小表改为join列 in (小表结果集)后,查询很快返回。
– join列/where条件列上是有索引的,选择性预计不会太差
对比改造为in 常量后的执行计划,以及较慢的执行计划见附件,请帮忙指导下这慢的原因是什么、以及该如何优化。
ddzx_log_TABLE_ws_log.txt (1.5 KB)
excel_data.txt (878 字节)
快的计划1.txt (45.6 KB)
慢的计划1.txt (3.7 KB)
慢是没走NLJ 对 a 全表扫描了。
ws_log_busi_id 这个索引是不是建成前缀索引了?
改成(busi_id
)再试试
道阻且長
#6
explain extended 查看执行计划和odc查看的执行计划输出结果是不是一样的,上传的附件里有。
试试这种:/*+ use_nl(b a) index(a ws_log_busi_id) */
道阻且長
#8
也不起作用,为啥不能用前缀索引;
0331执行计划.txt (4.7 KB)
可以把前缀索引换成正常的,试试能不能走上,能的话,再问问内核
1 个赞