Переключение представлений между двумя таблицами одной и той же схемы во время выполнения в Oracle - PullRequest
0 голосов
/ 20 марта 2020

У моего клиента есть две таблицы с одинаковыми столбцами, я назову их T1 и T2.

Одно представление, V указывает на T1, в то время как некоторый пакетный процесс работает на T2. Т2 должен быть обрезан, а данные перезагружены заново sh. Т1 имел самые последние данные перед новой перезагрузкой на Т2

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

Мои вопросы:

  1. Когда создаете или заменяете VIEW V для T2; выполняется переключение V для указания на T2 вместо T1, и одновременные запросы к Oracle доступ к V продолжает поступать либо с помощью SQL, либо с помощью хранимой процедуры, одновременно с модификацией VIEW V, будет ли точка, в которой во время переключение запроса может завершиться неудачей.

  2. Существует ли лучшая схема, в которой вместо VIEW V можно переключаться между таблицами, одновременно загружая и считывая данные.

1 Ответ

0 голосов
/ 20 марта 2020

У нас похожий процесс в моей компании. Это выполняется с использованием синонимов, а не представления, например:

create or replace synonym tab_syn for user_tables; -- syn set-up for the process
select count(*) from tab_syn;                      -- run your process 
create or replace synonym tab_syn for all_tables;  -- syn next run
select count(*) from tab_syn;                      -- next run 
...