В чем разница между представлениями и материализованными представлениями в Oracle?

StackOverflow https://stackoverflow.com/questions/93539

Вопрос

В чем разница между представлениями и материализованными представлениями в Oracle?

Это было полезно?

Решение

Материализованные представления хранятся на диске и периодически обновляются в зависимости от определения запроса.

Представления являются только виртуальными и выполняют определение запроса каждый раз, когда к ним обращаются.

Другие советы

Взгляды

Они оценивают данные в таблицах, лежащих в основе определения представления. в момент запроса представления.Это логическое представление ваших таблиц, без хранения данных где-либо еще.

Положительная сторона представления заключается в том, что оно будет всегда возвращать вам самые последние данныеНедостатком представления является то, что его производительность зависит от того, насколько хорош оператор выбора, на котором основано представление.Если оператор выбора, используемый представлением, объединяет множество таблиц или использует соединения на основе неиндексированных столбцов, представление может работать плохо.

Материализованные представления

Они похожи на обычные представления, поскольку представляют собой логическое представление данных (на основе оператора выбора). базовый набор результатов запроса сохранен в таблице.Плюсом этого является то, что когда вы запрашиваете материализованное представление, вы запрашиваете таблицу, который также может быть проиндексирован.

Кроме того, поскольку все соединения были разрешены во время обновления материализованного представления, вы платите цену соединения один раз (или так часто, как вы обновляете материализованное представление), а не каждый раз, когда вы выбираете из материализованного представления.Кроме того, если включена перезапись запроса, Oracle может оптимизировать запрос, который выбирает из источника вашего материализованного представления, таким образом, чтобы вместо этого он считывал данные из вашего материализованного представления.В ситуациях, когда вы создаете материализованные представления в виде совокупных таблиц или копий часто выполняемых запросов, это может значительно ускорить время отклика вашего приложения конечного пользователя.А недостатком является то, что данные, которые вы получаете из материализованного представления, являются актуальными только на момент последнего обновления материализованного представления..


Материализованные представления можно настроить на обновление вручную, по заданному расписанию или на основе базы данных, обнаруживающей изменение данных в одной из базовых таблиц.Материализованные представления можно постепенно обновлять, объединяя их с журналами материализованных представлений, которые выступать в качестве источников сбора данных об изменениях в базовых таблицах.

Материализованные представления чаще всего используются в хранилищах данных и приложениях бизнес-аналитики, где запросы к большим таблицам фактов с тысячами миллионов строк могут привести к увеличению времени ответа на запрос, что приведет к непригодности приложения.


Материализованные представления также помогают гарантировать согласованность момента времени, подобно изоляция моментальных снимков.

Представление использует запрос для извлечения данных из базовых таблиц.

Материализованное представление — это таблица на диске, содержащая набор результатов запроса.

Материализованные представления в основном используются для повышения производительности приложения, когда невозможно или нежелательно использовать стандартное представление с примененными к нему индексами.Материализованные представления можно регулярно обновлять либо с помощью триггеров, либо с помощью ON COMMIT REFRESH вариант.Это требует нескольких дополнительных разрешений, но в этом нет ничего сложного. ON COMMIT REFRESH существует как минимум с Oracle 10.

Представления — это, по сути, логические структуры, подобные таблицам, заполняемые «на лету» по заданному запросу.Результаты запроса представления не сохраняются нигде на диске, и представление создается заново каждый раз при выполнении запроса.Материализованные представления — это реальные структуры, хранящиеся в базе данных и записываемые на диск.Они обновляются на основе параметров, определенных при их создании.

Материализованный вид — таблица на диске, содержащая набор результатов запроса.

Нематериализованный вид — запрос, извлекающий данные из базовой таблицы.

Вид: Представление — это просто именованный запрос.Он ничего не хранит.Когда есть запрос к представлению, он запускает запрос определения представления.Фактические данные взяты из таблицы.

Материализованные представления: Хранит данные физически и периодически обновляется.При запросе MV он выдает данные из MV.

Добавляю к довольно подробному ответу Майка Макалистера...

Материализованные представления можно настроить только на обновление. автоматически через базу данных, обнаруживающую изменения при рассмотрении запроса на представление простой компилятором.Если это считается слишком сложным, он не сможет настроить внутренние триггеры для отслеживания изменений в исходных таблицах, чтобы обновлять только измененные строки в таблице mview.

Когда вы создадите материализованное представление, вы обнаружите, что Oracle создает как mview, так и и как таблица с тем же именем, что может запутать ситуацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top