Oracle всегда использует HASH JOIN, даже если обе таблицы огромны?

я понимаю, что HASH JOIN имеет смысл только тогда, когда одна из двух таблиц достаточно мала, чтобы поместиться в памяти в качестве хеш-таблицы.

, но когда я отправил запрос в oracle, когда в обеих таблицах было несколько сотен миллионов строк, oracle все же предложил план объяснения хэш-соединения. даже когда я обманул его подсказками OPT_ESTIMATE (rows = ....), он всегда решает использовать HASH JOIN вместо объединения сортировки слиянием.

поэтому мне интересно, как HASH JOIN возможен в случае, если обе таблицы очень большие?

спасибо Ян

10
задан teddy teddy 18 November 2011 в 19:35
поделиться