Ваш пример приблизительно соответствует материализованному представлению "полное обновление".Вам может потребоваться представление «быстрого обновления», которое часто используется в настройках хранилища данных, если исходные таблицы содержат миллионы или миллиарды строк.
Вы бы приблизили быстрое обновление, используя вместо этого вставку / обновление (upsert)объединение существующей «таблицы представлений» с первичными ключами исходных представлений (при условии, что они могут быть сохранены на ключах) или сохранение даты_ времени последнего обновления и использование этого в критериях обновления SQL для сокращения времени обновления.
Кроме того, рассмотрите возможность использования переименования таблиц, а не удаления / создания, чтобы новое представление можно было создавать и создавать практически без пропусков недоступности.Сначала создайте новую таблицу «mview_new», затем переименуйте «mview» в «mview_old» (или удалите ее) и переименуйте «mview_new» в «mview».В приведенном выше примере ваше представление будет недоступно, пока выполняется заполнение SQL.