视图和实例化视图之间的区别
内容
到目前为止,我们已经讨论了以物理形式存储在数据库中的原始表。在其中我们可以访问表的所有属性。如果必须限制用户访问表的某些属性而让其他属性访问该怎么办。就像行政部门的职员可以搜索雇员表的名称,地址,名称,年龄和其他因素一样。但是,不得授权他查看或获取任何员工的薪水。
在这种情况下,我们必须能够创建只能显示表中所需属性的虚拟表。这可以通过我们将在本文中讨论的“视图”和“物化视图”实现。我们还将借助下面显示的比较表来讨论视图和实例化视图之间的区别:
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 视图 | 物化视图 |
---|---|---|
基本的 | 从不存储视图,仅显示它。 | 物化视图存储在磁盘上。 |
限定 | 视图是由一个或多个基本表或视图形成的虚拟表。 | 物化视图是基表的物理副本。 |
更新资料 | 每次使用虚拟表(视图)时都会更新视图。 | 物化视图必须手动或使用触发器进行更新。 |
速度 | 处理速度慢。 | 快速处理。 |
内存使用情况 | 视图不需要内存空间。 | 物化视图利用内存空间。 |
句法 | 创建视图V为 | 创建实例化视图V构建并按刷新 |
视图的定义
视图是 虚拟表,使用创建 建立检视 命令。该虚拟表包含从 查询表达式,在“创建视图”命令中。可以从一个或多个基本表或视图创建视图。可以像查询原始基表一样查询视图。
它是 不 该视图是 预计算 和 储存的 在磁盘上,视图是 计算的 每次使用或访问它。每当使用视图时,都会在该特定时刻执行“创建视图”命令中的查询表达式。因此,您总是得到 更新 视图中的数据。
如果更新View中的任何内容,则该内容将反映在原始表中,并且如果对原始基表进行了任何更改,则该内容也会反映在其View中。但这使得View的性能 慢点。例如,一个视图是通过两个或多个表的联接创建的。在这种情况下,每次使用视图时,您都必须花时间来解析联接。
但是它有一些 好处 喜欢它 不 要求 储存空间。您可以创建一个 定制的 复杂数据库的视图。您可以 限制 用户访问数据库中的敏感信息。减少 复杂 通过将多个表中的数据放入单个自定义视图中来进行查询。
现在让我们看一下View的语法
创建视图V为
记得 所有视图均不可更新。 就像使用创建的视图 不同 条款, 通过...分组 条款, 校验 约束(如果违反检查约束), 只读 选项无法更新。
物化视图的定义
物化视图是 实物副本 原始基本表。物化视图就像 快照 要么 图片 原始基本表。与View一样,它还包含从 查询表达式 的 创建实例化视图 命令。
但是与视图不同,物化视图是 预计算 和 储存的 在像对象的磁盘上,它们是 未更新 每次使用它们。相反,必须更新实例化视图 手动地 或在 触发器。更新物化视图的过程称为 物化视图维护.
与View相比,物化View的响应速度更快。这是因为物化视图是预先计算的,因此,它不会浪费时间来解析查询或联接创建物化视图的查询。反过来,它对物化视图上的查询的响应速度更快。
让我们检查实例化视图的语法:
创建实例化视图V
生成刷新
上
如
哪里 建立 子句决定何时填充实例化视图。刷新类型决定如何更新实例化视图,触发器决定何时更新实例化视图。
实体视图通常用于 数据仓库.
- 视图和实体化视图之间的基本区别在于,视图是 未储存 物理上在磁盘上。另一方面,物化视图是 储存的 在光盘上。
- 视图可以定义为 虚拟表 根据查询表达式创建的。但是,物化视图是 实物副本,基表的图片或快照。
- 风景永远 更新 每次使用View时都会执行查询创建View的查询。另一方面,物化视图已更新 手动地 或通过申请 触发器 对此。
- 物化视图响应 快点 比视图是预先计算的。
- 物化视图 利用 的 记忆空间 因为它存储在磁盘上,而视图只是一个 显示 因此,它不需要内存空间。
结论:
与View相比,物化View的响应速度更快。但是View总是向用户提供最新信息。