SQL Server索引视图及性能提高简介

ZDNet软件频道 时间:2009-04-10 作者:ChinaITLab | 天新网 我要评论()
本文关键词:数据库 Mssql SQL SQL Server
SQL Server 2000 已经扩展了 SQL Server 视图的功能,以提高系统性能。它可以在一个视图上创建唯一的群集索引和非群集索引,可以改进最复杂查询的数据访问性能。

使用索引视图的好处

实现索引视图之前,请先分析数据库的工作量。运用自己对查询以及各种工具(例如 SQL 分析器)的知识来鉴别使用索引视图可以获益的查询。如果经常进行聚合和联接,最好使用索引视图。

并非所有查询都会从索引视图中获益。与普通索引类似,如果未使用索引视图,就没有好处可言。在此情况下,不但不能提高性能,还会加大磁盘空间的占用、增加维护和优化的成本。但是,如果使用了索引视图,它们可以(成数量级地)明显地提高数据访问的性能。这是因为查询优化器使用存储在索引视图中的预先计算的结果,从而大大降低了执行查询的成本。

查询优化器只在查询的成本比较大时才考虑使用索引视图。这样可以避免在查询优化成本超出因使用索引视图而节省的成本时,试图使用各种索引视图。当查询成本低于 1 时,几乎不使用索引视图。

使用索引视图可以受益的应用包括:

● 决定支持工作量;
● 数据集市;
● 联机分析处理 (OLAP) 库和源;
● 数据挖掘工作量。

从查询的类型和模式的角度来看,受益的应用可被归纳为包含以下内容的应用:

● 大表的联接和聚合;
● 查询的重复模式;
● 重复聚合相同或重叠的列集;
● 针对相同关键字重复联接相同的表;
● 上述的组合。

相反,包含许多写入的联机事务处理 (OLTP) 系统或更新频繁的数据库,可能会因为要同时更新视图和根本基表而使维护成本增加,所以不能利用索引视图。

查询优化器如何使用索引视图

SQL Server 查询优化器可自动确定何时可以将索引视图用于给定的查询执行中。查询中无需直接引用视图,优化器就可以将该视图用于查询执行计划。因此,无需对现有的应用程序本身进行任何更改,这些应用程序即可利用索引视图。唯一需要做的就是创建索引视图。

优化器的考虑因素

查询优化器会考虑几个条件来确定索引视图能涵盖部分查询还是整个查询。这些条件符合查询中的单个 FROM 子句并包含以下内容:

● 查询 FROM 子句中的表必须是索引视图 FROM 子句中的表的超集。
● 查询中的联接条件必须是视图中联接条件的超集。
● 查询中的聚合列必须是视图中的聚合列的子集。

数据库

Mssql

SQL

SQL Server


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134