一、索引视图
多年以来,microsoft® sql server™ 一直支持创建称为视图的虚拟表。通常,这些视图的主要作用是:
•提供一种机制,允许开发人员自定义用户通过逻辑方式查看存储在基表中的数据的方式。 【相关文章:IBM i520服务器】
•提供一种安全机制,将用户限制到一个或多个基表的某个数据子集中。 【扩展阅读:IBM i550服务器】
从数据库管理系统 (dbms) 的角度看来,视图是对数据(一种元数据类型)的一种描述。当创建了一个典型视图时,通过封装一个 select 语句(定义一个结果集来表示为虚拟表)来定义元数据。当在另一个查询的 from 子句中引用视图时,将从系统目录检索该元数据,并替代该视图的引用扩展元数据。视图扩展之后,sql server 查询优化器会为执行查询编译一个执行计划。查询优化器会搜索针对某个查询的一组可能的执行计划,并根据对执行每个查询计划所需的实际时间的估计,选择所能找到的成本最低的计划。 【扩展信息:IBM i520 express版服务器】
通过 sql server 2000,sql server 视图的功能得到了扩展,实现了系统性能方面的收益。可在视图上创建唯一的聚集索引及非聚集索引,来提高最复杂的查询的数据访问性能。在 sql server 2000 与 2005 中,具有唯一的聚集索引的视图即为索引视图。本文所讨论的内容适用于 sql server 2005,其中有许多内容也适用于 sql server 2000。
对于非索引视图,解析查询所必需的视图部分会在运行时被具体化。任何计算(比如:联接或聚合)都在每个引用视图的查询执行时完成1。在视图上创建了唯一的聚集索引后,该视图的结果集随即被具体化,并保存在数据库的物理存储中,从而在执行时节省了执行这一高成本操作的开销。
在查询执行中,可通过两种方式使用索引视图。查询可直接引用索引视图,或者更重要的是,如果查询优化器确定该视图可替换成本最低的查询计划中的部分或全部查询,那么就可以选定它。在第二种情况中,使用索引视图替代基础表及其一般索引。不必在查询中引用视图以使查询优化器在查询执行时使用该视图。这使得现有的应用程序可以从新创建的索引视图中受益,而不必进行更改。
注意 索引视图是 sql server 2000 与 2005 各版本的一个功能。... 下一页