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

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

8 ответов


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

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


вид

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

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

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

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

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


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

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


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


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

материализованное представление-это таблица на диске, который содержит результат запроса.

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


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


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

Не materiased вид - запрос, который извлекает данные из базовой таблицы


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

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


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

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

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


A посмотреть - это не что иное, как SQL-запрос, принимает вывод запроса и делает его похожим на виртуальную таблицу, которая не занимает места для хранения или не содержит никаких данных

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