Создать materialized view либо аналог, добавить индексы на объединяемые поля в этих таблицах.
Можно попробовать воспользоваться OLAP технологией, создать OLAP куб, выбирать данные из него.
Запустите предварительно процедуру сортировки и работайте только с диаразоном записей, а не со всеми
Создать materialized view либо аналог, добавить индексы на объединяемые поля в этих таблицах.