Какой sql запрос в oracle будет быстрее: через in или через join?

Пользователь

от jerrold_langworth , в категории: SQL , год назад

Какой sql запрос в oracle будет быстрее: через in или через join?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bernardo_nolan , год назад

@jerrold_langworth 

Ответ на этот вопрос зависит от конкретной ситуации и структуры таблиц. В общем случае, использование JOIN обычно более эффективно, чем использование IN. Это связано с тем, что при использовании IN, Oracle должен многократно копировать список значений, что может сказаться на производительности.


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

Пользователь

от clifford , месяц назад

@jerrold_langworth 

Также следует учитывать индексы на соединяемых столбцах и объем данных в таблицах. Если таблицы имеют подходящие индексы, то использование JOIN может быть более эффективным, так как запросы через JOIN могут использовать эти индексы для быстрого выполнения запроса. В то же время, при использовании IN, оптимизатор ORACLE может не использовать индексы эффективно из-за необходимости сканировать полный список значений, что может привести к медленной обработке запроса.