Materialized view (snapshots)
Обучающийся
Дата: 05.12.2007 01:44:56
Уважаемые форумчане,
прошу помочь решить следующую делему.
Задача:
Есть три абсолютно идентичные таблицы, содержащие данные за различные временные периоды, которые реплицируются в схему некого решения A внешним по отношению к данной системе решением B. Реплицируются они через snapshots.
В решении A создано представление, объединяющее три упомянутых таблицы через UNION ALL.
Вопрос:
1. Будет ли рабочим представление, если в момент его обращения одна из таблиц реплицируется
2. Если нет, то каким образом можно сделать данное представление рабочим.
Поскольку я, как разработчик, абсолютно не силен в snapshots Oracle, буду благодарен за Ваши ответы в кратчайшие сроки.
Спасибо.
UDW
Дата: 05.12.2007 10:15:49
Довольно мутный вопрос...
Можно поподробнее?
Где вьюшка используется? На мастере или снепшоте?
Доку по Advanced Replication читали?
Обратите внимание, что снепшот - это материализованное представление.
Васильев Андрей
Дата: 05.12.2007 11:41:29
Если все 3 snapshot-а обновляются методом fast, то представление "будет рабочим".
_____________________
С уважением, Андрей.
Обучающийся
Дата: 05.12.2007 13:14:56
UDW
Есть три идентичные таблицы TAB1, TAB2, TAB3 (система Z), в которые реплицируемые данные из биллинговой системы (мастер) за один месяц. Пример: TAB1 содержит данные за 8-ой месяц 2007, TAB2 - за 7-ой месяц 2007, TAB3 - за 9-ый месяц 2007
Каждое начало месяца одна из таблиц, которая содержит самые старые временные данные модифицируется. В приведенном выше примере по наступлению 11-ого месяца в TAB2 (содержит самые старые данные) копируются данные за 10-ый месяц
В системе Z, которая разрабатывается мною, создана view, которая объединяет таблицы TAB1, TAB2, TAB3
Мне необходимо знать, будет ли созданное мною представление рабочим, если в момент его обращения одна из таблиц реплицируется
Васильев Андрей
Можно расшифровать "будет рабочим"? Т.е. при обращении к моему view данные будут выбираться из тех таблиц, которые сейчас не реплицируются. Верно?
Еще раз спасибо за ответы.
UDW
Дата: 05.12.2007 14:37:08
Процедура refresh (видимо это имеется в виду под репликацией) представляет из себя последователдьное выполнение Delete * from table where ... и inset ...
В момент обновления снимка ваша вьюшка будет видеть информацию на начало транзакции обновления. Других "казусов" не будет.
Хитрее было-бы, если в момент обновления в снапшоты вносилась инфа... Но это уже другая история ;-)
Васильев Андрей
Дата: 06.12.2007 06:21:23
Васильев Андрей |
Если все 3 snapshot-а обновляются методом fast |
Да, пардон, глупость сморозил. Данные, имеющиеся на начало транзакции обновления, будут доступны.
_____________________
С уважением, Андрей.