Материализованное представление Oracle: как определить, были ли изменены исходные таблицы?

Я создал MV на многих столах. Я не хочу автоматически обновлять его. Я просто хочу знать, были ли изменены исходные таблицы или нет. Как лучше всего это сделать?


person Marshall    schedule 03.11.2011    source источник
comment
что именно вы хотите сделать?   -  person Florin Ghita    schedule 03.11.2011


Ответы (1)


Если вы создали MV с быстрым обновлением, вы также создали журналы Materialied View для базовых таблиц. Вы можете выдать select count(*) из соответствующего журнала MV (это таблица, содержащая имя таблицы и M_$ или что-то в этом роде).

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

person Florin Ghita    schedule 03.11.2011
comment
Таким образом, нет представления оракула, содержащего информацию о том, является ли MV действительным или нет? - person Marshall; 03.11.2011
comment
только MV с быстрым обновлением хранят такую ​​информацию. Вы можете проверить журналы материализованного представления, как я уже сказал. - person Florin Ghita; 03.11.2011
comment
Как насчет этого: SELECT STALENESS FROM user_mviews WHERE mview_name = ..., это хорошее решение? - person Marshall; 04.11.2011
comment
кажется, вы правы download.oracle.com/ docs/cd/B19306_01/server.102/b14237/ Да, я думаю, что этот флаг заслуживает доверия, вы можете проверить его. - person Florin Ghita; 04.11.2011