当前位置: 网学 > 编程文档 > SQL SERVER > 正文

使用SQL Server 2000索引视图提高性能

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式

本文介绍 SQL Server 2000 企业版的新功能 - 索引视图。讲解索引视图并讨论一些提高性能的具体方案。


什么是索引视图?


许多年来,Microsoft® SQL Server™ 一直都提供树立虚拟表(称为视图)的功能。在过去,这些视图主要有两种用途:


提供安全机制,将用户限制在一个或多个基表中的数据的某个子集。

提供一种机制,容许开发人员定制用户如何才华以逻辑方式查看存储在基表中的数据。

SQL Server 2000 已经扩展了 SQL Server 视图的功能,以提高系统性能。它可以在一个视图上树立唯一的群集索引和非群集索引,可以改进最复杂查询的数据访问性能。在 SQL Server 2000 中,拥有唯一群集索引的视图被称为索引视图。


注意:索引视图只是SQL Server 2000 企业版和SQL Server 2000 开发人员版的一个功能。


从数据库管理系统 (DBMS) 的见解来看,视图是数据(元数据)的说明。建立典型视图时,通过 SELECT 语句(定义一个显示为虚拟表的结果集)来定义元数据。当其它查询的 FROM 子句中引用了某个视图时,将从系统目录中检索该元数据,并对其进行扩展以代替该视图的引用。在视图扩展之后,查询优化器会为正在执行的查询编译单个执行计划。


如果是非索引视图,视图在运行时将被实体化。任何计算(如联接或聚合)都在为每个引用该视图的查询执行查询期间进行。(视图并不总需要被完全实体化。查询可以包含其它一些谓词、连接或聚合,以运用于该视图所引用的表和视图。)在视图上建立了唯一的群集索引之后,视图的结果集会立即被实体化并持续保存在数据库的物理存储空间中,以便节约这种操作所占用的大量资源。


在执行查询时,有两种方法可以使用索引视图。查询可直接引用索引视图,更重要的是,要是查询优化器确定视图能够替换为查询的部分或全部,而且这是低成本的查询计划,则可以选择索引视图。第二种状况是使用索引视图代替基础表及其普通索引。此时,不须要在查询中引用视图,查询优化器即可在执行查询期间使用该视图。这样,现有的应用程序无需更改即可重新建的索引视图中获益。

 

通过索引视图提高的性能


使用索引来提高查询性能并不是什么新观念,不过,索引视图还具有使用标准索引不能获得的其它性能长处。索引视图能够在以下方面提高查询性能:


能够预先计算聚合并将其存储在索引中,从而最大限度地减少在执行查询期间进行成本很高的计算。

能够预先连接表并存储生成的数据集。

能够存储联接或聚合的组合。

使用视图的辅助索引


视图的辅助性非群集索引可以提高其它查询性能。与表的辅助索引类似,视图的辅助索引也可以提供更多选项,以便查询优化器在编译过程中从中进行选择。例如,如果查询包括群集索引未涉及的列,优化器可以在计划中选择一个或多个辅助索引,从而避免对索引视图或基表进行费时的全局扫描。


由于索引须要不断维护,所以为架构添加索引会增加数据库的额外开销。因此应当认真考虑,找到索引和维护额外开销之间的平衡点。

 

使用索引视图的好处


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


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


查询优化器只在查询的成本比较大时才考虑使用索引视图。这样可以避免在查询优化成本超出因使用索引视图而节省的成本时

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号