Неважно, что данные взяты из 3 схем, на самом деле. Важно знать, как часто будут меняться данные, как часто будут меняться критерии и как часто они будут запрашиваться.
Если существует ограниченный набор критериев (то есть данные будут просматриваться ограниченным числом способов), которые меняются только раз в несколько дней и будут запрашиваться как сумасшедшие, вам, вероятно, следует взглянуть на материализованные представления.
Если критерии почти бесконечны, то нет смысла создавать материализованные представления, поскольку они, вероятно, не будут использоваться повторно. То же самое верно, если сам критерий изменяется очень часто, данные в материализованном представлении также не помогут в этом случае.
Другой вопрос, который остается без ответа, - это как часто обновляются исходные данные, и насколько важно иметь новейшую информацию. Часто обновляемый исходный день может означать, что материализованное представление на некоторое время «устареет», или вы можете тратить много времени на ненужное обновление материализованных представлений, чтобы сохранить данные «свежими».
Честно говоря, 2-3 миллиона записей - это уже немного для Oracle, учитывая достаточное количество оборудования. Вероятно, я бы сначала проверил простые динамические запросы, прежде чем пытаться представить (материализованное) представление.