Материализованные представления создают копию данных. По сути, они являются настоящими таблицами. Фактически мы можем создать материализованное представление из существующей таблицы, используя предложение PREBUILT. Единственное отличие состоит в том, как обрабатываются данные - материализованное представление не владеет своими данными, а таблица.
Что касается загадки вашего выступления:
Когда вы говорите "на неиндексированном столе" Вы буквально имеете в виду одну таблицу ? Если это так, то мы не ожидаем никакой разницы во времени для запроса представления, материализованного представления или фактических данных: все они выполняют полное сканирование таблицы на одном и том же объеме данных.
Рассмотрим случай, когда представления ожидают select * from <table> where <condition>
.
Мы бы выбрали SELECT для материализованного представления, построенного на этом запросе, чтобы он выполнялся быстрее, чем тот же SELECT для фактической таблицы, при условии, что предложение WHERE ограничивает данные значительно меньшим подмножеством исходных данных. Просто потому, что полное сканирование таблицы за маленьким столом (материализованное представление) занимает меньше времени, чем полное сканирование таблицы за большим столом. То же самое применимо, если проекция материализованного представления имеет меньше столбцов, чем базовая таблица.
Индексация - это другое дело. Если запрос не выберет очень маленькое подмножество данных, он не будет более эффективным, чем полное сканирование таблицы и фильтр.
Подводя итог: единственная универсальная настраивающая эвристика: требуется меньше времени, чтобы выполнять меньше работы . Помимо этого невозможно обобщить. Мы не можем обсуждать какое-то расплывчатое «рассмотрим случай, когда представления имеют select * from <table> where <condition>.
». Все дело в специфике.