В чем реальная разница между представлением и материализованным представлением?
Я прошел через множество ссылок, где говорилось, что обычное представление похоже на виртуальную таблицу, и данные не могут храниться на диске, где в случае материализованных данных они будут храниться на диске. Но оттуда я ничего не получаю, например, когда использовать обычный вид и когда использовать материализованный вид. Если я создам оба представления, которые я вижу в своей схеме. Я хочу точно знать, когда и где мы используем обычное представление и используем материализованное представление. Пожалуйста, предоставьте мне решение с практическим примером.
Спасибо
Представление — это просто сохраненный запрос. Это удобный способ сохранить некоторую сложную бизнес-логику (объединения, фильтры, производные значения), чтобы ее можно было повторно использовать и поделиться с другими пользователями.
Материализованное представление также является способом сохранения запроса, но оно материализует набор результатов. То есть он создает копию данных на диске.
Основной причиной использования материализованного представления является повышение производительности. Каждый раз, когда мы выбираем из представления, мы выполняем весь запрос; если это дорогостоящий запрос, это стоимость, которую мы платим каждый раз. С материализованным представлением мы обмениваем дисковое пространство на время.
Кроме того, мы можем обращаться с материализованным представлением как с таблицей: мы можем индексировать их, мы можем добавлять ключевые ограничения, мы можем даже ссылаться на них во внешнем ключе.
Основная причина не использовать материализованное представление — стоимость. Они занимают место на диске. Их также необходимо поддерживать. По умолчанию материализованные представления являются статическими, что означает, что их данные постепенно устаревают с течением времени. Обновление материализованного представления может быть обременительным (в зависимости от базового запроса). В то время как запрос представления всегда дает нам самое актуальное представление данных.
Нижеследующее является только рекомендациями, а не полными или отдельными
Когда использовать представление
Когда использовать материализованное представление
Ответы на ваши вопросы в документация(*). У меня нет намерения переписывать это прекрасное руководство, но я отвечу на ваши вопросы, потому что, начав, я обречен продолжать.
select * from user_extents where segment_name = 'name of mview'
(*) Это документация Oracle, потому что это то, что предлагает ваш профиль, но другие платформы RDBMS имеют аналогичные документы.
@apc ...... 1) Вы хотите сказать, что и представление, и материализованное представление являются удобным способом сохранить запрос и логику, но материализованное представление использует дисковое пространство для репликации данных, которых нет в обычном представлении, верно? 2) Тем не менее есть небольшая путаница, если оба являются удобным способом сохранить запрос и логику, тогда единственная причина, по которой мы не используем материализованное представление, только потому, что они занимают место на диске? 3) Мы можем применять индексы в материализованном представлении, которые мы не можем применить в представлении?
@apc...... 4) Как мы можем проверить, что материализованное представление использует дисковое пространство для репликации данных? 5) Как вы сказали, обновление материализованного представления может быть обременительным, но при создании материализованного представления у нас есть возможность выбрать, хотим ли мы обновить материализованное представление при фиксации или по требованию, и если мы выберем Обновить при фиксации, то когда пользователь вставит данные и сделать фиксацию, тогда материализованное представление автоматически получит ссылку?
Возможный дубликат В чем разница между представлениями и материализованными представлениями в Oracle?