视图和物化视图的实际区别是什么?
我已经浏览了很多链接,他们说普通视图就像一个虚拟表,数据不能存储在磁盘上,以防物化的数据在磁盘上存储。但是从那里,我没有什么东西像什么时候使用普通视图,什么时候使用物化视图。如果我创建两个视图,我可以在我的模式中看到。我想知道我们使用普通视图和物化视图的确切时间和地点。请给我举例说明解决办法。
谢谢
发布于 2019-05-23 13:58:07
视图只是一个存储的查询。这是保存一些复杂的业务逻辑(联接、筛选、派生值)的简便方法,这样就可以重用它并与其他用户共享。
物化视图也是保存查询的一种方式,但它将结果集具体化。也就是说,它创建磁盘上数据的副本。
使用物化视图的主要原因是性能的提高。每次我们从视图中选择时,我们都会执行整个查询;如果这是一个昂贵的查询,那么我们每次都要付出代价。通过物化视图,我们用磁盘空间来交换时间。
此外,我们可以像对待表一样对待物化视图:我们可以索引它们,我们可以添加键约束,甚至可以在外键中引用它们。
不使用物化视图的主要原因是成本。它们占用了磁盘空间。它们也必须得到维护。默认情况下,物化视图是静态的,这意味着它们的数据随着时间的推移逐渐变得陈旧。刷新物化视图可能很麻烦(取决于底层查询)。而查询视图总是给我们提供最新的数据视图。
以下只是指南,既不完整也不明确。
何时使用视图
何时使用物化视图
你的问题的答案是在)。我无意重写那本精美的手册,但我会回答你的问题,因为我已经开始了,我注定要继续下去。
select * from user_extents where segment_name = 'name of mview'(*)这是Oracle的文档,因为这是您的概要文件,但其他RDBMS平台有类似的文档。
https://stackoverflow.com/questions/56226462
复制相似问题