Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Что произойдёт при выполнении запроса к материализованному представлению, во время его обновления?

#oracle


Есть мат.представление 

CREATE MATERIALIZED VIEW emp2 
REFRESH COMPLETE ON COMMIT 
AS SELECT * FROM emp;


Допустим кто-то внёс изменения в таблицу emp, зафиксировал (commit). Представление
начинает обновляться, и тут кто-то другой выполняет запрос к emp2. Что произойдёт?

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


Ответы

Ответ 1



Refresh по сути не должен блокировать доступ к индексированному представлению (материализованному), т.е. по сути создаются новые физические записи на диске, а не перезаписываются. А вот если делается ALTER VIEW, то происходит его монопольная блокировка

Комментариев нет:

Отправить комментарий