测试环境:
版本:OceanBase_CE 4.2.1.10 (r110000072024112010-28c1343085627e79a4f13c29121646bb889cf901)
三表关联 怎么才能让这三个表都走hash连接呢,添加了hint 也不生效,那位大佬知道原因吗
obclient(root@ldf)[test]> explain
→ select * from sales a left join sa on sa.prod_id=a.prod_id and sa.c1=(select max(c1) from sb where sb.c1=a.c1);
±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Query Plan |
±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| =================================================================== |
| |ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)| |
| ------------------------------------------------------------------- |
| |0 |NESTED-LOOP OUTER JOIN | |200000 |8082567306 | |
| |1 |├─PX COORDINATOR | |200000 |1021659 | |
| |2 |│ └─EXCHANGE OUT DISTR |:EX10000|200000 |718604 | |
| |3 |│ └─PX PARTITION ITERATOR | |200000 |36908 | |
| |4 |│ └─TABLE FULL SCAN |a |200000 |36908 | |
| |5 |└─SUBPLAN FILTER | |1 |40407 | |
| |6 | ├─DISTRIBUTED TABLE FULL SCAN|sa |1 |40361 | |
| |7 | └─SCALAR GROUP BY | |1 |47 | |
| |8 | └─TABLE FULL SCAN |sb |1 |47 | |
| ===================================================================
obclient(root@ldf)[test]> explain
→ select /*+ leading(a sa sb) use_hash(sa sb) */ * from sales a left join sa on sa.prod_id=a.prod_id and sa.c1=(select max(c1) from sb where sb.c1=a.c1);
±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Query Plan |
±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| =================================================================== |
| |ID|OPERATOR |NAME |EST.ROWS|EST.TIME(us)| |
| ------------------------------------------------------------------- |
| |0 |NESTED-LOOP OUTER JOIN | |200000 |8082567306 | |
| |1 |├─PX COORDINATOR | |200000 |1021659 | |
| |2 |│ └─EXCHANGE OUT DISTR |:EX10000|200000 |718604 | |
| |3 |│ └─PX PARTITION ITERATOR | |200000 |36908 | |
| |4 |│ └─TABLE FULL SCAN |a |200000 |36908 | |
| |5 |└─SUBPLAN FILTER | |1 |40407 | |
| |6 | ├─DISTRIBUTED TABLE FULL SCAN|sa |1 |40361 | |
| |7 | └─SCALAR GROUP BY | |1 |47 | |
| |8 | └─TABLE FULL SCAN |sb |1 |47 | |
| ===================================================================
