1、数 据 库 原 理 与 应 用( SQL Server 2005)第 9章 索引第 9章 索引 任务目标: 理解索引的概念、结构和分类、优缺点; 掌握创建索引的方法及创建索引时的选项; 了解使用 SSMS创建和管理索引的方法; 了解索引的分析方法和整理碎片的方法; 理解统计信息的概念; 会配置统计信息的选项。第 9章 索引 9.1 索引概述 9.2 创建和管理索引 9.3 索引的分析与维护 习题与实验9.1 索引概述索引概述9.1.1 索引的概念 索引的定义 索引是一种为了加速对表中数据行的检索而创建的分散存储结构。 SQL Server中的索引与书的目录很类似 索引是基于表中的数据创建的,它
2、是由除存放表的数据页面以外的索引页面构成。 每个索引页面中的行都含有逻辑指针,以便加速检索物理数据。 对表中的列是否创建索引以及创建什么样的索引,对于查询的响应速度都会有很大的影响。 9.1 索引概述索引概述9.1.2 索引的 优 点与缺点 创建索引的优点 ( 1)索引可以加速查询 ( 2)加快表与表之间的连接 ( 3)在包含分组和排序的查询中,减少分组排序时间 ( 4)有利于 SQL Server进行查询优化 ( 5)可以强制实施唯一性约束 创建索引的缺点 ( 1)创建索引和维护索引要耗费时间 ( 2)索引需要占一定的物理空间 ( 3)索引会降低数据修改的性能9.1 索引概述索引概述9.1.
3、3 索引的 结 构与分 类索引的结构 9.1 索引概述索引概述9.1.3 索引的 结 构与分 类 1、索引的结构 B 树索引的结构 9.1 索引概述索引概述9.1.3 索引的 结 构与分 类 2、索引分类 聚集索引 ( CLUSTERED INDEX) 聚集索引确定表中数据的物理顺序 ; 每个表只能有一个聚集索引 ; 数据页就是聚集索引树的叶级页 ; 行的物理存储顺序和索引的逻辑顺序完全相同 ; 对于那些经常要搜索范围值的列特别有效。 表上如果存在主键,主键列即自动会创建聚集索引。9.1 索引概述索引概述9.1.3 索引的 结 构与分 类聚集索引的结构 9.1 索引概述索引概述9.1.3 索引的 结 构与分 类 2、索引分类 聚集索引 ( CLUSTERED INDEX) 一般情况下,表上如果存在主键,主键列即默认会创建聚集索引。 特殊情况下我们需要考虑以下情况建立聚集索引: 经常按范围查询的列; 经常用于分组和排序的列; 在连接中常用的列。 在创建聚集索引时应注意以下事项: 每张表只能包含一个聚集索引,但可以是多列的组合; 由于聚集索引会改变表中数据的物理顺序,所以应该先创建聚集索引,后建立非聚集索引; 不能在频繁修改的列上创建聚集索引,这样会浪费大量的成本来维护索引。