Материализованное представление в Oracle Sql - PullRequest
0 голосов
/ 13 декабря 2018

Как я могу использовать материализованное представление для повышения производительности?Я знаю, что представления оракула хранятся в кэш-памяти, кроме случаев, когда клиент запрашивает представление.Мы используем материализованное представление для получения моментального снимка базы данных, обычно, когда размер данных очень велик, но я хочу знать, где хранится это материализованное представление? Может ли оно храниться на клиентском компьютере удаленно (в indexedDB) для повышения производительности

1 Ответ

0 голосов
/ 15 декабря 2018

Представления - это просто сохраненные запросы , они не содержат никаких данных и не занимают места на диске.Если они сложны и имеют дело с большим количеством данных, да - выборка данных будет медленной (как если бы вы сами запустили этот SELECT).

Материализованные представления (MV) действительно содержат данные и занимают место надиск (какой? Сервер, конечно, где база данных).Они «действуют», как если бы они были таблицами - если вы используете тот же запрос, который вы использовали для обычного представления, и создаете материализованное представление, вы можете проиндексировать MV, который мог (и, вероятно,бы) ускорить доступ к данным.

С другой стороны, представления всегда содержат самые последние данные.Материализованные представления должны быть обновлены.Есть разные способы сделать это;Один из вариантов - обновить при фиксации , т. е. всякий раз, когда данные фиксируются в таблице, которая является основой для MV.Или вы можете сделать это по расписанию (например, каждую ночь в 02:00) - это зависит от того, как часто вам нужны самые последние данные.

Гораздо больше информации в документации, например "Концепции материализованного представления "(https://docs.oracle.com/database/121/REPLN/repmview.htm#REPLN003).

...