Могу ли я использовать вот так?Могу ли я одновременно установить подсказку MAPJOIN и подсказку STREAMTABLE?
select /*+ MAPJOIN(t2)*//*+ STREAMTABLE(t1)*/
t1.c1.
t2.c1
from t1
left outer join t2
on t1.c1 = t2.c1;
И я смущаюсь о «STREAMTABLE» на разных клавишах соединения.
Например: t3 - самый большой стол, а t2 - вторичная большая таблица, t1 - наименьшая таблица.
select
/*+ STREAMTABLE(t2)*/
t1.c3,
t2.c2,
t3.c3
from t2
left outer join
t1
on t2.c1=t1.c1
left outer join
t3 on t2.c2=t3.c2;
Так что, если когда t2 t1 присоединиться к его ok.but когда t2 t3 присоединиться, если t2, если по-прежнему рассматриваться как большой стол? Как справиться с этой ситуацией?
Не используйте такие подсказки вообще. Оптимизатор с затратами будет выполнять эту работу. Используйте оптимизатор на основе затрат + статистику. – leftjoin
@leftjoin Привет, как я могу это сделать? Моя версия улья 0.13.x? Что мне делать? – user5107182
Обновление. 0.14 Улей на Tez работает намного быстрее, и никаких намеков больше не требуется. – leftjoin