视图vs物化视图
视图和物化视图(mviews)是oracle数据库对象的两种类型。这两个对象都引用select查询。这些select查询充当虚拟表。通常视图和mview引用大型select查询,这些查询具有一组连接。因此,视图的主要优点之一是,我们可以将复杂的select查询存储为视图。因此,我们可以对最终用户隐藏select查询背后的逻辑。当我们需要执行复杂的select语句时,只需执行
从视图名称中选择*
视图
如前所述,view是一个虚拟表,它隐藏了一个select查询。这些select查询不是预先执行的。当我们从视图中执行select语句时,它将执行位于视图主体内的select语句。让我们假设视图主体的select语句是一个非常复杂的语句。因此,当它被执行时,它需要一些时间来执行(相对来说更长的时间)。此外,view使用非常小的空间来存储自己。这是因为它只有一个select语句作为其内容。
物化视图(Mview)
这是一种特殊类型的视图。mview是在视图出现性能问题时创建的。当我们创建mview时,它执行select查询并将其输出存储为快照表。当我们从Mview请求数据时,它不需要重新执行select语句。它提供快照表的输出。因此,mview的执行时间小于view(对于同一个select语句)。但是,mviews不能一直使用,因为它显示相同的输出,输出存储为快照表。我们应该刷新mview以获得它的最新结果集。
View和Mview有什么区别?1Mview在创建时总是将其输出存储为快照表,但视图不创建任何表。视图不需要很大的空间来存储其内容,但是mview需要比视图更大的空间来存储其内容(作为快照表)。View需要更长的执行时间,但是mview比views花费的执行时间要短(对于同一个select语句)。Mviews需要刷新以获取最新数据,但视图总是提供最新数据。模式需要creatematerialized view特权来创建mviews,而对于视图,它需要createview特权。可以在mviews上创建索引以获得更高的性能,但不能在视图上创建索引。 |