基本信息
文件名称:索引与查询优化:创建、维护及性能提升.pptx
文件大小:86.56 KB
总页数:25 页
更新时间:2026-03-13
总字数:约7千字
文档摘要

第13章索引和查询优化索引提供对数据的快速访问,用于减轻搜索数据库的压力。SQLServer2008数据库提供了丰富的索引类型,以优化查询操作。本章就索引的创建与使用进行说明,并列举索引的常用维护操作,从而实现索引的优化。

13.1索引概述索引是与表或视图关联的磁盘上数据结构,它可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个称为B树的数据结构中,使SQLServer数据库可以快速有效地查找与键值相关联的行。

13.1.1聚集索引和非聚集索引SQLServer2008数据库的索引分为聚集索引和非聚集索引,其数据结构的组织形式不同,具体描述请参考如下说明。聚集索引,聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。非聚集索引,非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。

13.1.2填充因子提供填充因子选项是为了优化索引数据存储和性能。当创建或重新生成索引时,填充因子值可确定每个叶级页上要填充数据的空间百分比,以便保留一定百分比的可用空间供以后扩展索引。例如,指定填充因子的值为80表示每个叶级页上将有20%的空间保留为空,以便随着在基础表中添加数据而为扩展索引提供空间。填充因子的设定直接影响数据表的操作效率。填充因子值是1到100之间的一个百分比。在大多数情况下,服务器范围的默认值0是最佳选项。如果将填充因子设置为0,将几乎最大限度地填充叶级页,但是至少会留出再添加一个索引行的空间。使用此设置可有效使用叶级空间,但应保留一定的空间以便在不得不拆分页之前进行有限的扩展。

13.1.3使用目录视图查看索引示例:以下示例使用索引视图sys.indexes,查看数据表Production.Product数据表的主键索引PK_Product_ProductID的结构信息,具体操作可以参考以下示例。(1)单击“开始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,启动SQLServerManagementStudio工具。在SQLServerManagementStudio工具中,单击“新建查询”按钮,打开一个“新建查询”窗口。(2)在查询编辑器中,输入代码,并单击“执行”按钮。

13.2用CREATEINDEX语句创建索引本书第四章讲述了使用SQLServerManagementStudio图形工具,如表设计器等创建索引的过程,本节,详细介绍使用CREATEINDEX语句创建索引的步骤,并列举示例进行说明。

13.2.1基本语法1.CREATEINDEX的语法2.使用CREATEINDEX创建索引的示例示例:以下示例将建立数据表,使用CREATEINDEX语句,在建立的数据表上创建索引IX_TEST_ID,具体操作可以参考如下示例。(1)单击“开始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,启动SQLServerManagementStudio工具。在SQLServerManagementStudio工具中,单击“新建查询”按钮,打开一个“新建查询”窗口。(2)在SQLServerManagementStudio工具中,单击“新建查询”按钮,打开一个“新建查询”窗口。(3)建立一个示例数据库,在打开的查询编辑器中输入代码,单击“执行”按钮。(4)在查询编辑器中,使用CREATEINDEX创建IDX_1的非聚集索引IX_TEST_ID,输入代码,并单击“执行”按钮。(4)在“对象资源管理器”中,查看该索引,在“索引”目录下,有IX_TEST_ID索引,为不唯一,非聚集索引。(5)双击该索引,查看索引的详细情况,可以看到索引键列为id。

13.2.2创建简单的复合索引示例:在示例2建立的数据表的基础上,建立由col1和col2的多个字段构成的索引,具体操作可能参考如下步骤。(1)单击“开始|所有程序|MicrosoftSQLServer2008|SQLServerManagementStudio”命令,启动SQLServerManagementStudio工具。(2)在SQLServerManagementStudio工具中,单击“新建查询”按钮,打开一个“新建查询”窗口。建立一个示例数据库,在新建查询编辑器中输入代码。(3)在查询编辑器中,使用CREATEINDEX创建IDX_2的复合索引IX_2_TEST_ID,输入代码,