ник: Силblч
я дробил так:
1. если были промежуточные запросы - формировал из них таблицы и потом подсоединял в итоговый
2. подправил на предмет работы exists и left join - в моем случае left join отрабатывл быстрее чем , not exists (вроде не путаю)
3. в запросах, чтобы уменьшить количество записей, добавлял фильтр по тем сучьностям, которые потенциально могут быть выбраны...
на данном этапе это помогло формировать таблицу не за несколько часов(суток), а за 10-15 минут
но это мой, частный случай, Олег.