Создать материализованное представление намного медленнее, чем создать таблицу - PullRequest
2 голосов
/ 15 февраля 2012

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

Когда я использую этот синтаксис для создания обычной таблицы из представления, он выполняется очень быстро (5 секунд):

create table my_table as select * from my_view;

Однако, когда я пытаюсь создать материализованное представление из того же представления, оно НАМНОГО медленнее (5+ минут).

create materialized view my_materialized_view refresh complete start with sysdate next trunc(sysdate, 'HH') + (1/24)  AS select * from my_view;

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

Есть идеи, что может вызвать замедление?Что я могу сделать (подсказки и т. Д.), Чтобы ускорить его выполнение при создании представления материализации?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Я думаю, что разница (и проблема) может заключаться в том, что обновление удаляет и вставляет. Создать таблицу делает только выбор-вставка. Но обновление делает delete-select-insert.

Попробуйте сделать это с усечением. Не знаю синтаксис наизусть, можно найти в документах.

0 голосов
/ 16 февраля 2012

Извините, что у меня нет ответа.Я тоже столкнулся с этой проблемой и не смог ее объяснить.В моем случае я просто реализовал MV в виде таблицы, и все были довольны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...