0

Является ли вычислительная стоимость обновления хранимой процедурыматериализованного вида, в Oracle, на основе выполнения запроса или набора результатов? Более конкретно, хранит ли Oracle результаты запроса таким образом, который значительно увеличивает время, необходимое для обновления представления?Oracle материализованный просмотр вычислительной стоимости

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

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

+0

Что значит перестроить хранимые процедуры? –

+0

@beherenow жаль об этом, я имел в виду «материализованное представление», но хранил процедуры в мозгу, я думаю. Я переписал вопрос, спасибо! .. хотя я все еще не уверен, что «обновить» или «перестроить» - правильные слова. –

ответ

1

Есть два типа mviews

Полное обновление MView - entier MView будет восстановить все обновления. аналогично удалению и вставке (обратите внимание: если вы укажете атом = F или у вас есть версия < 9, он будет усекать/вставить добавить).

Быстрое обновление mview - oracle создаст таблицу для хранения инкрементных изменений. при обновлении изменения, сохраненные в боковой таблице, будут применены к mview.

Быстрое обновление происходит быстрее при обновлении, но замедляет операции dml на базовой таблице.

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

+0

так что @haki, если бы я обновил материализованное представление один раз в день, было бы более целесообразным сделать полное обновление? –

2

Материализованный вид в основном представляет собой таблицу в сочетании с алгоритмом ее обновления.

01:37:23 [email protected]> create materialized view mv_dual as select dummy from dual; 

Materialized view created. 

Elapsed: 00:00:00.52 
01:37:56 [email protected]> select object_name, object_type from user_objects where object_name = 'MV_DUAL'; 

OBJECT_NAME  OBJECT_TYPE 
--------------- ------------------- 
MV_DUAL   TABLE 
MV_DUAL   MATERIALIZED VIEW 

Elapsed: 00:00:00.01 

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

Если говорить об обновлении - есть два варианта: быстрое обновление и полное обновление.

Полное обновление просто перезапускает запрос MV, в то время как быстрое обновление выполняет инкрементные обновления.

http://docs.oracle.com/cd/E16338_01/server.112/e10706/repmview.htm#i29858

Смежные вопросы