数智融合计算服务 DATAARTSFABRIC-子查询调优:更多优化示例

时间:2025-06-17 08:50:09

更多优化示例

示例:修改select语句,将子查询修改为和主表的join,或者修改为可以提升的subquery,但是在修改前后需要保证语义的正确性。

1
explain (costs off)select * from t1 where t1.c1 in (select t2.c1 from t2 where t1.c2 = t2.c2);

上面示例计划中存在一个subPlan,为了消除这个subPlan可以修改语句为:

1
explain(costs off) select * from t1 where exists (select 1 from t2 where t1.c1 = t2.c1 and t1.c2 = t2.c2);

从计划可以看出,subPlan消除了,计划变成了两个表的semi join,这样会大幅度提高执行效率。

support.huaweicloud.com/devg-fabric/dataartsfabric_sql_04_0091.html