oceanbase 4.3 版本
对 tpch 这条查询语句: explain select p_brand, p_type, p_size, count(distinct ps_suppkey) as supplier_cnt from partsupp, part where p_partkey = ps_partkey and p_brand <> ‘Brand#45’ and p_type not like ‘MEDIUM POLISHED%’ and p_size in (49, 14, 23, 45, 19, 3, 36, 9) and ps_suppkey not in ( select s_suppkey from supplier where s_comment like ‘%Customer%Complaints%’ ) group by p_brand, p_type, p_size order by supplier_cnt desc, p_brand, p_type, p_size;
现在生成的执行计划如下图所示:
现在我要指定,ID 3 处显示的 hash join 为 merge join,这个hint 该怎么写。
我现在是 /*+leading((supplier,partsupp),part) use_merge(part) */ 这样来写的,但是并没有起效果,是因为 supplier 和 partsupp 在查询里没有显示 join ,所以 leading没有起效果?
试下 /*+leading((view1,partsupp),part) use_merge(part) */
1 个赞
应该是这样的
LEADING((partsupp part) supplier) USE_MERGE(supplier) USE_MERGE(part)
1 个赞
感谢,这样确实可以
这条语句不太行,我不想改变原有的连接顺序,只改变一个join类型