使用索引视图的好处
实现索引视图之前,请先分析数据库
查询优化器只在查询的成本比较大时才考虑使用索引视图。这样可以避免在查询优化成本超出因使用索引视图而节省的成本时,试图使用各种索引视图。当查询成本低于 1 时,几乎不使用索引视图。
使用索引视图可以受益的应用包括:
● 决定支持工作量;
● 数据集市;
● 联机分析处理 (OLAP) 库和源;
● 数据挖掘工作量。
从查询的类型和模式的角度来看,受益的应用可被归纳为包含以下内容的应用:
● 大表的联接和聚合;
● 查询的重复模式;
● 重复聚合相同或重叠的列集;
● 针对相同关键字重复联接相同的表;
● 上述的组合。
相反,包含许多写入的联机事务处理 (OLTP) 系统或更新频繁的数据库,可能会因为要同时更新视图和根本基表而使维护成本增加,所以不能利用索引视图。
查询优化器如何使用索引视图
SQL Server
优化器的考虑因素
查询优化器会考虑几个条件来确定索引视图能涵盖部分查询还是整个查询。这些条件符合查询中的单个 FROM 子句并包含以下内容:
● 查询 FROM 子句中的表必须是索引视图 FROM 子句中的表的超集。
● 查询中的联接条件必须是视图中联接条件的超集。
● 查询中的聚合列必须是视图中的聚合列的子集。