Время от времени Oracle, кажется, предпочитает операцию MERGE JOIN CARTESIAN
обычной операции MERGE JOIN
. Зная данные и глядя на конкретные планы выполнения, я вижу, что эта операция обычно не является проблемой, поскольку одна из объединенных сущностей может вернуть только одну запись в текущем запросе.
Однако по историческим причинам наши администраторы баз данных испытывают отвращение к декартовым продуктам.
Поэтому я хотел бы лучше проанализировать эти случаи и подкрепить свою аргументацию документацией. Есть ли какая-либо официальная документация Oracle о преобразовании запросов и CBO, в которой я могу понять случаи, когда Oracle предпочитает операцию MERGE JOIN CARTESIAN
(или аналогичную)?
В этом случае я использую Oracle 11g. (11.2.0.2.0)
ОБНОВЛЕНИЕ :
Это похожие вопросы, но они не объясняют , почему или , когда Oracle предпочитает MJC
вместо обычного MERGE JOIN
: