Журнал материализованного представления Oracle

Если у меня есть table T с 10 столбцами и я создаю журнал материализованного представления только с 3 из них, а также материализованное представление с этими 3, почему, когда я обновляю ЛЮБОЙ столбец в таблице (кроме тех, что в журнале), запись вставляется в MLOG$_T? Есть ли способ избежать?

Спасибо


person vadim zilberleyb    schedule 17.01.2012    source источник


Ответы (1)


Нет, этого не избежать. Основная цель журнала — идентифицировать строки, которые изменились, а не сами измененные данные (хотя вы также можете включить это в журнал). Процесс ведения журнала ничего не знает о представлениях, которые могут быть созданы и будут использовать журналы, поэтому он должен вести журнал для любых изменений в таблице.

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

person DCookie    schedule 17.01.2012