收藏 分享(赏)

第15章索引和查询优化.ppt

上传人:kpmy5893 文档编号:8464366 上传时间:2019-06-29 格式:PPT 页数:23 大小:287.50KB
下载 相关 举报
第15章索引和查询优化.ppt_第1页
第1页 / 共23页
第15章索引和查询优化.ppt_第2页
第2页 / 共23页
第15章索引和查询优化.ppt_第3页
第3页 / 共23页
第15章索引和查询优化.ppt_第4页
第4页 / 共23页
第15章索引和查询优化.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、第15章 索引和查询优化,索引提供对数据的快速访问,用于减轻搜索数据库的压力。SQL Server 2005数据库提供了丰富的索引类型,以优化查询操作。本章就索引的创建与使用进行说明,并列举索引的常用维护操作,从而实现索引的优化。,15.1 索引概述,索引是与表或视图关联的磁盘上数据结构,它可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个称为B树的数据结构中,使SQL Server数据库可以快速有效地查找与键值相关联的行。,15.1.1 聚集索引和非聚集索引,SQL Server 2005数据库的索引分为聚集索引和非聚集索引,其数据结构的组织形式不同

2、,具体描述请参考如下说明。 聚集索引,聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。 非聚集索引,非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。,15.1.2 填充因子,提供填充因子选项是为了优化索引数据存储和性能。当创建或重新生成索引时,填充因子值可确定每个叶级页上要填充数据的空间百分比,以便保留一定百分比的可用空间供以后扩展索引。,15.1.3 使用目录视图查看索引,用户可以使用目录视图查看索引的相关信息,(具体内容请参照书。),15.2 用CREATE INDEX语句创建索引,本书第四

3、章讲述了使用SQL Server Management Studio图形工具,如表设计器等创建索引的过程,本节,详细介绍使用CREATE INDEX语句创建索引的步骤,并列举示例进行说明。,15.2.1 基本语法,(具体内容请参照书。),15.2.2 创建简单的复合索引,示例:以下示例在15.2.1节建立的数据表的基础上,建立由col1和col2的多个字段构成的索引,具体操作可能参考如下步骤。,15.2.3 创建唯一索引,示例:以下示例在15.2.1节建立的数据表的基础上,使用CREATE UNIQUE INDEX建立唯一索引,具体操作可能参考如下步骤。(具体内容请参照书。),15.2.4 创

4、建聚集索引,每个表都应该有聚集索引,聚集索引可以按需重新生成或重新组织来控制表的物理碎片。聚集索引一般按主键约束和UNIQUE约束的方式实现。 在创建主键约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。主键列不允许空值。在创建UNIQUE约束时,默认情况下将创建唯一非聚集索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,则可以指定唯一聚集索引。,15.2.5 指定索引存放的文件组,用户也可以指定将索引存放的位置,这样有助管理存储的物理策略。(具体内容请参照书。),15.3 用ALTER INDEX语句修改索引,使用ALTER INDEX,通

5、过禁用、重新生成或重新组织索引,或通过设置索引的相关选项,修改现有的表索引或视图索引。本节将介绍ALATER INDEX的语法,并根据使用示例说明。,15.3.1 基本语法,使用ALTER INDEX创建索引的语法结构如下所示。(具体内容请参照书。),15.3.2 设置索引的选项,(具体内容请参照书。),15.3.3 禁用/启用索引,和约束一样,在进行一些操作的时候,用户可能希望禁用和启用索引操作。禁用索引可防止用户访问该索引,对于聚集索引,还可防止用户访问基础表数据。(具体内容请参照书。),15.4 用DROP INDEX语句删除索引,删除非聚集索引时,将从元数据中删除索引定义,并从数据库文

6、件中删除索引数据页。删除聚集索引时,将从元数据中删除索引定义,并且存储于聚集索引叶级别的数据行将存储到生成的未排序表中。将重新获得以前由索引占有的所有空间。,15.4.1 基本语法,本节讲述使用DROP INDEX删除索引的功能。(具体内容请参照书。),15.4.2 使用DROP INDEX删除聚集索引并将表移动到新文件组,以下示例使用MOVE TO子句联机删除一个聚集索引,并将生成表移动到文件组GROUP2。在移动之前和之后,将查询sys.indexes、sys.tables和sys.filegroups目录视图,以验证索引和表在文件组中的位置。(具体内容请参照书。),15.4.3 使用DR

7、OP INDEX删除PRIMARY KEY约束,在已经创建了PRIMARY KEY或UNIQUE约束的数据库中,创建的索引不能使用DROP INDEX来删除,可以使用ALTER TABLE DROP CONSTRAINT语句删除该约束。,15.5 重新组织和重新生成索引,索引由于数据的添加、删除、修改等操作,会产生碎片,这样的状态将影响数据表的操作效率,SQL Server 2005数据库提供了重新生成索引的方式,本节讨论重新构建索引。,15.5.1 理解重新组织、生成索引,无论何时对基础数据执行插入、更新或删除操作,SQL Server 2005数据库引擎都会自动维护索引。随着时间的推移,这

8、些修改可能会导致索引中的信息分散在数据库中。当索引包含的页中的逻辑排序与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。在SQL Server 2005数据库中,用户可以通过重新组织索引或重新生成索引来修复索引碎片。,15.5.2 重新组织索引,重新组织索引是通过对叶页进行物理重新排序,使其与叶节点的逻辑顺序相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理,使页有序可以提高索引扫描的性能。,15.5.3 重新生成索引,重新生成索引将删除该索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报