Oracle материализовал представление обновлений доступности данных

Альтернатива - создать нормальную, не-демонанизированную программу Python, а затем демонтировать ее извне с помощью supervisord . Это может сэкономить много головных болей и является * nix- и языковым переносом.

1
задан jo_wil 1 March 2019 в 23:43
поделиться

1 ответ

Правила для того, что запросы данных видят в материализованном представлении, идентичны правилам, которые применяются к тому, что запросы данных видят в таблице, которая подвергается изменениям. Эти правила обобщены в документации под согласованность многоверсионного чтения .

Я предполагаю, что вы делаете атомное обновление материализованного представления. Вы могли бы сделать неатомарное обновление, которое бы урезало материализованное представление перед обновлением, но это почти наверняка не то, что вы хотели бы в этом случае.

  1. Запросы будут видеть данные в том виде, в каком они существовали, когда начался запрос (или когда транзакция началась, если сеанс находится на уровне изоляции сериализуемой транзакции). Таким образом, перед началом обновления будет отображаться согласованная картина данных.
  2. Считыватели не блокируют записи, так что это не повлияет на запись в базовую таблицу.
  3. Так же, как 1, запрос будет видеть непротиворечивую картину данных в том виде, в каком они существовали, когда запрос начал выполняться (или когда транзакция началась). Обновление будет выполняться одновременно только в отдельной области транзакции. Единственное влияние состоит в том, что запрос потенциально может быть немного медленнее, поскольку, вероятно, потребуется применить некоторое количество UNDO к текущим кэшированным блокам, чтобы вернуть данные в том виде, в каком они существовали на момент начала запроса.
0
ответ дан Justin Cave 1 March 2019 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: