ora601 |
---|
Видимо без указания leading нельзя ... У меня запрос больше, где собственно говоря нужно поменять последнюю операцию , порядок джоина до, не должен фиксироваться. Я ожидал что то типа USE_NL(2, 5), где 2 - ,5 - операции на первом примере... |
Ну так если тебе приходится указывать хинт - значит Оракл где-то ошибается по твоему.
Когда ты указываешь use_nl - Оракл его рассматривает (ты можешь это посмотреть в трассе 10053), но другие погрешности при построении конкретного плана это не исправляет.
Ему указано: соединять t1 только с помощью NL и он перебирает порядок таблиц учитывая это искусственное ограничение при поиске наименьшей стоимости.
Если ты хочешь соединить какой-то набор данных с помощью NL с еще одной таблицей - можешь тот набор впихнуть в inline view с хинтом no_merge,
а на внешнем уровне указать use_nl и при необходимости swap_join_inputs/no_swap_join_inputs.
Но лучше все таки разобраться в чем причина неправильного плана и фиксить её.