Я бы предположил, что это происходит из-за условия on (x и y) последнего внутреннего соединения.Oracle, вероятно, не знает, как оптимизировать условие нескольких операторов, поэтому выполняет полное объединение, а затем фильтрует результат по условию по факту.Я не очень знаком с планом объяснения Oracle, поэтому не могу сказать, что с правами
Edit
Если вы хотите проверить эту гипотезу, вы можете попробоватьизменив запрос на:
inner join dm_geography_sales_pos_uniq u on u.emp_sk = e.emp_sk
where u.prod_brnd_sk = b.prod_brnd_sk
и посмотрим, исключает ли это полное соединение из плана