Это несколько упрощенное объяснение. Там много технической ухмылки, происходящей под капотом, но это звучало так, как будто вы хотели общее объяснение "васпуп".
Представление, по сути, является предварительно записанным и сохраненным запросом; всякий раз, когда вы получаете доступ к представлению, вы извлекаете и вставляете этот предварительно написанный запрос в текущий запрос. (По крайней мере, так я думаю об этом.)
Таким образом, эти «базовые» представления считывают данные, которые хранятся в таблицах, уже присутствующих в базе данных / на жестком диске. Когда вы строите кластерный индекс в представлении, вы действительно делаете вторую физическую копию данных, на которую ссылается представление. Например, если у вас есть таблица A, создайте представление vA как «select * from A», а затем создайте кластерный индекс для этого представления, в результате чего вы получите две копии данных на жестком диске.
Это может быть полезно, если таблица A очень большая, и вы хотите быстрый доступ к небольшому подмножеству таблицы (например, только 2-3 столбца или только там, где Status = 1, или вы хотите быстрый доступ к данным для этого требуется безобразное соединение.)
Забавность наступает, когда вы обновляете таблицу A (на самом деле, любую из таблиц, на которые ссылается представление), поскольку любые изменения в «базовой» таблице также необходимо вносить в таблицу «view». Не очень хорошая идея для интенсивно используемых систем OLTP.
К вашему сведению, я считаю, что "индексированные представления" в SQL называются "материализованными представлениями" в Oracle. За мои деньги Materialized View - гораздо лучшее имя / описание.