欢迎来到天天文库
浏览记录
ID:50146092
大小:1.35 MB
页数:51页
时间:2020-03-09
《数据库原理及应用 (SQL Server 2005) 第9章 索引.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理及应用(SQLServer2005)授课教师:******2021年8月11日第9章索引第9章索引任务目标:理解索引的概念、结构和分类、优缺点;掌握创建索引的方法及创建索引时的选项;了解使用SSMS创建和管理索引的方法;了解索引的分析方法和整理碎片的方法;理解统计信息的概念;会配置统计信息的选项。第9章索引9.1索引概述9.2创建和管理索引9.3索引的分析与维护习题与实验9.1索引概述9.1.1索引的概念索引的定义索引是一种为了加速对表中数据行的检索而创建的分散存储结构。S
2、QLServer中的索引与书的目录很类似索引是基于表中的数据创建的,它是由除存放表的数据页面以外的索引页面构成。每个索引页面中的行都含有逻辑指针,以便加速检索物理数据。对表中的列是否创建索引以及创建什么样的索引,对于查询的响应速度都会有很大的影响。9.1索引概述9.1.2索引的优点与缺点创建索引的优点(1)索引可以加速查询(2)加快表与表之间的连接(3)在包含分组和排序的查询中,减少分组排序时间(4)有利于SQLServer进行查询优化(5)可以强制实施唯一性约束创建索引的缺点(1)创建索引和维
3、护索引要耗费时间(2)索引需要占一定的物理空间(3)索引会降低数据修改的性能9.1索引概述9.1.3索引的结构与分类索引的结构9.1索引概述9.1.3索引的结构与分类1、索引的结构——B树索引的结构9.1索引概述9.1.3索引的结构与分类2、索引分类—聚集索引(CLUSTEREDINDEX)聚集索引确定表中数据的物理顺序;每个表只能有一个聚集索引;数据页就是聚集索引树的叶级页;行的物理存储顺序和索引的逻辑顺序完全相同;对于那些经常要搜索范围值的列特别有效。表上如果存在主键,主键列即自动会创建聚集
4、索引。9.1索引概述9.1.3索引的结构与分类聚集索引的结构9.1索引概述9.1.3索引的结构与分类2、索引分类—聚集索引(CLUSTEREDINDEX)一般情况下,表上如果存在主键,主键列即默认会创建聚集索引。特殊情况下我们需要考虑以下情况建立聚集索引:经常按范围查询的列;经常用于分组和排序的列;在连接中常用的列。在创建聚集索引时应注意以下事项:每张表只能包含一个聚集索引,但可以是多列的组合;由于聚集索引会改变表中数据的物理顺序,所以应该先创建聚集索引,后建立非聚集索引;不能在频繁修改的列上创
5、建聚集索引,这样会浪费大量的成本来维护索引。9.1索引概述9.1.3索引的结构与分类2、索引分类—非聚集索引(NONCLUSTEREDINDEX)非聚集索引中记录的物理顺序与逻辑顺序没有必然的联系。非聚集索引的叶级页中记录了指向物理数据位置的信息,可以快速定位到指定数据。如果表中没有聚集索引,则非聚集索引建立在原始无序的数据上;而当表上已经有了聚集索引时,非聚集索引将建立在聚集索引上。在只包含非聚集索引的表中,叶节点包含了具有指针的行标识符,由文件ID、页码行页上的行数构成。当在已经有聚集索引的
6、表上建立非聚集索引的时候,每个非聚集索引的行指示器包含了行的聚集索引键值。非聚集索引的结构9.1索引概述9.1.3索引的结构与分类2、索引分类—非聚集索引(NONCLUSTEREDINDEX)非聚集索引常被用在以下情况:经常用于分组、汇总的列上;经常用于排序的列上;经常用于连接的列上;经常返回总数据量中很少一部分的列上。创建非聚集索引需要考虑以下一些事项:创建索引时,默认为非聚集索引;对每个表最多可以建立249个非聚集索引;非聚集索引需要占用一定的磁盘空间;会一定程度上降低向表中插入和更新数据的
7、速度;若表上的聚集索引发生改变(新建或删除),将重建表上现有的非聚集索引。9.1索引概述9.1.4设计数据表的索引1.考虑创建索引的列(1)主键列上(默认创建一个聚集索引);(2)经常用在连接的列上;(3) 经常需要进行范围查询的列上;(4)经常需要排序的列上。2.不考虑创建索引的列(1)很少或从来不在查询中引用的列。(2)选择性低(重复值多)的列;(3)小表(记录数很少的表)一般也不必创建索引;(4)更新操作比较频繁的列上不适合创建索引。9.1索引概述9.1.4设计数据表的索引【任务9-1】设
8、计学生表Student的索引。分析:在学生表中经常查询的字段包括:学生编号、学生姓名、性别、班级编号、地址等。其中学生编号是主键列;班级编号是外键列,经常用于连接;性别列唯一性差、地址列字段较长,均不适合创建索引。聚集索引:学生编号列上创建主键,默认创建聚集索引;聚集索引:学生姓名、班级编号两列上分别建立非聚集索引。9.1索引概述9.1.4设计数据表的索引【任务9-2】设计班级表Class的索引。分析:班级表中经常查询的字段包括:班级编号、班级名称、专业编号、班长编号等;班级编号是主键列;专业编
此文档下载收益归作者所有