2015-05-22 8 views
0

Добрый день, Можно ли материализовать представление другого вида вид в основной базе данных (в отличие от сплошной таблицы)? My DBA советует, чтобы оракул не позволял создавать материализованные журналы просмотра против представления. IMO - это почти то же самое, что и таблица, поэтому это должно быть возможно. Кто-нибудь когда-либо делал это успешно (Oracle 11g).oracle 11g Thamaterialized views with another view

+2

Вы пробовали? Если это так, вы получили сообщение об ошибке? –

+0

может быть, ваша проблема больше брэд, чем вы думаете. Существуют различные способы синхронизации материализованных представлений и способов их ускорения. Возможно, ваш администратор базы данных жалуется из-за некоторой быстрой функции обновления. – ibre5041

ответ

0

documentation довольно ясно говорит об этом:

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

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

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

  • Вы не можете создать материализованный журнал просмотра для главной таблицы с виртуальным столбцом.

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

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

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

Вам необходимо создать материализованные журналы просмотра в базовых таблицах вида (обычного) вида.

+0

Добрый день, Алекс, оцените ваш подробный ответ. Полностью понял. Спасибо. –