2010-12-16 4 views
10

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

+1

Пробовали ли вы http://en.wikipedia.org/wiki/Materialized_view? – 2010-12-16 17:05:47

ответ

15

Несомненно.

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

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

Данные в материализованном виде обновляются, когда вы говорите.

пара Прецеденты:

  • У нас есть несколько экземпляров Oracle, где мы хотим иметь основные данные на одном экземпляре, и разумно текущая копия данных о других случаях. Мы не хотим предполагать, что ссылки на базы данных между ними всегда будут работать и работать. Поэтому мы настраиваем материализованные представления на другие экземпляры с запросами, такими как select a,b,c from [email protected], и сообщаем им обновляться ежедневно.

  • Материализованные виды также полезны при перезаписи запроса. Допустим, у вас есть таблица фактов в хранилище данных с каждой книгой, когда-либо заимствованной из библиотеки, с датами и заемщиками. И этот персонал регулярно хочет знать, сколько раз была заимствована книга. Затем создайте материализованное представление как select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name, установите его для любой частоты обновления, которую вы хотите - обычно частота обновления самого хранилища. Теперь, если кто-то запускает такой запрос для конкретной книги против таблицы book_trans, возможность перезаписи запроса в Oracle будет достаточно умна, чтобы смотреть на материализованное представление, а не ходить через миллионы строк в book_trans.

Как правило, вы строите материализованные виды по соображениям производительности и стабильности - сломанные сети или длительные запросы в нерабочее время.

1

Да. Материализованные виды - это виды с базовым столом под ними. Вы определяете представление, и Oracle автоматически создает базовую таблицу под ним.

Выполняя представление и помещая полученные данные в базовую таблицу, вы получаете производительность.

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

1) мнение, что это комплекс может занять много времени, чтобы выполнить, если ссылка на

2) Вид включен в комплексной SQL может дать плохие планы выполнения ведущих на производительность вопросы

3) Вы, возможно, потребуется ссылаться на данные по медленному DBLink

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

Вы можете указать полное или частичное обновление.

Пожалуйста, обратитесь к документации Oracle для получения полной информации

2

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

Например, представление может представлять собой запрос, такой как SELECT account, SUM(payment) FROM payments GROUP BY account с большим количеством платежей в таблице, но не с несколькими учетными записями. Каждый раз, когда используется это представление, вся таблица должна быть прочитана. С материализованным представлением результат возвращается мгновенно.

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

6

A вид в основном «названный» оператор SQL. Вы можете ссылаться на представления в своих запросах, как на реальную таблицу. При доступе к представлению выполняется запрос по представлению. Например:

create view my_counter_view(num_rows) as 
    select count(*) 
    from gazillion_row_table; 

    select num_rows from my_counter_view; 

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

Материализованный вид - это представление, в котором выполнен запрос, и результаты были сохранены в виде физической таблицы. Вы можете ссылаться на материализованное представление в своем коде, как на реальную таблицу. Фактически, является реальной таблицей, которую вы можете индексировать, объявлять ограничения и т. Д. При доступе к материализованному представлению вы получаете доступ к предварительно вычисленным результатам. Вы используете NOT, выполняющий запрос подкласса. Существует несколько стратегий, позволяющих сохранить материализованное представление в актуальном состоянии. Вы найдете их в документации.

Материализованные виды редко упоминаются непосредственно в запросах. Дело в том, чтобы оптимизатор использовал механику «Переписать запрос», чтобы внутренне переписать запрос, такой как пример COUNT (*) выше, на запрос в предварительно вычисленной таблице. Это очень мощно, так как вам не нужно менять исходный код.

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

Длинная версия: ->Oracle documentation

0

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

http://www.oraappdata.com/2016/04/materialized-view.html