Слияние присоединиться к CARTESIAN - PullRequest
3 голосов
/ 14 октября 2011

Всегда ли Merge join CARTESIAN опасен?

У меня много запросов со стоимостью в диапазоне от 7 до 40, но после выполнения присоединение объединяется декартовым для выполнения.

Когда стоимость моего запроса меньше, стоит ли мне беспокоиться о Carteian Merge Join?

Мне действительно нужна помощь в этом.

Любая помощь очень ценится.

Спасибо, САВИТА

1 Ответ

7 голосов
/ 14 октября 2011

Декартово объединение обычно является признаком того, что вы где-то пропустили объединение, и это плохо, поскольку ваш результат будет не таким, как вы ожидаете, и запрос, вероятно, займет значительно больше времени, чем следовало бы.

Однако это не всегда так.Скажем, у вас есть две сравнительно небольшие таблицы, которые вы фильтруете до одной строки в каждой.Обе эти таблицы будут объединены в таблицу гораздо большего размера в двух разных столбцах, каждый из которых находится в одном индексе.В этом случае оптимизатор может решить объединить декартово два небольших набора результатов, поскольку результирующий набор данных может более эффективно использовать индекс для таблицы большего размера.

Короче говоря, если вы видите в своем плане декартово соединениеВам, вероятно, стоит присмотреться и попытаться понять, почему оптимизатор выбрал этот маршрут.Может случиться так, что вы избавите себя от головной боли в будущем, потому что вы обнаружите ошибку, которая еще не вызывала проблемы, или может быть, что это действительно лучший план, но вы должны принимать это решение для каждого запроса отдельно.

...