SQL_SERVER_2005之9索引和查询优化

SQL_SERVER_2005之9索引和查询优化

ID:45590293

大小:612.50 KB

页数:45页

时间:2019-11-15

SQL_SERVER_2005之9索引和查询优化_第1页
SQL_SERVER_2005之9索引和查询优化_第2页
SQL_SERVER_2005之9索引和查询优化_第3页
SQL_SERVER_2005之9索引和查询优化_第4页
SQL_SERVER_2005之9索引和查询优化_第5页
资源描述:

《SQL_SERVER_2005之9索引和查询优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章索引和查询优化学习目标本章重点本章内容9/1/20211学习目标数据库管理系统通常使用索引技术加快对表中数据的检索。索引类似于图书的目录。目录允许用户不必翻阅整本图书就能根据页数迅速找到所需内容。在数据库中,索引也允许数据库应用程序迅速找到表中特定的数据,而不必扫描整个数据库。在图书中,目录是内容和相应页码的列表清单。在数据库中,索引是表中数据和相应存储位置的列表。本章将详细研究有关索引和查询优化的内容。9/1/20212本章重点索引的特点索引的类型创建索引索引信息优化索引优化查询9/1/20213本章内容9.1概述9.2索引的类

2、型和特点9.3创建索引9.4索引维护9.5查询优化9.6上机练习9.7习题9/1/20214本章内容9.1概述9.2索引的类型和特点9.3创建索引9.4索引维护9.5查询优化9.6上机练习9.7习题9/1/202159.1概述在MicrosoftSQLServer系统中,可管理的最小空间是页。一个页是8KB字节的物理空间。插入数据的时候,数据就按照插入的时间顺序被放置在数据页上。一般地,放置数据的顺序与数据本身的逻辑关系之间是没有任何联系的。因此,从数据之间的逻辑关系方面来讲,数据是乱七八糟堆放在一起的。数据的这种堆放方式称为堆。当一个

3、数据页上的数据堆放满之后,数据就得堆放在另外一个数据页上,这时就称为页分解。9/1/20216为什么要创建索引呢?索引是一种与表或视图关联的物理结构,可以用来加快从表或视图中检索数据行的速度。为什么要创建索引呢?这是因为创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用ORDERBY和GROUPBY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间

4、。第五,通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。正是因为上述这些原因,所以应该对表增加索引。9/1/20217为什么不对表中的每一个列创建一个索引呢?也许会有人要问增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?虽然索引有许多优点,但是为表中的每一个列都增加索引是非常不明智的做法。这是因为增加索引也有其不利的一面。第一,创建索引和维护索引要耗费时间。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间。如果要建立聚集索引,那么需要的空间就会更大。第三,当对表中的数据进

5、行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。9/1/20218索引是建立在列的上面在经常需要搜索的列上创建索引;在主键上创建索引;在经常用于连接的列上创建索引,也就是在外键上创建索引;在经常需要根据范围进行搜索的列上创建索引(因为索引已经排序,其指定的范围是连续的);在经常需要排序的列上创建索引(因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间);在经常用在WHERE子句中的列上创建索引。9/1/20219本章内容9.1概述9.2索引的类型和特点9.3创建索引9.4索引维护9.5查询优化9.6

6、上机练习9.7习题9/1/2021109.2索引的类型和特点在MicrosoftSQLServer2005系统中有两种基本的索引类型:聚集索引和非聚集索引。除此之外,还有唯一性索引、包含性列索引、索引视图、全文索引及XML索引等。在这些索引类型中,聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解唯一性索引、包含性列索引、索引视图的基础,本节主要研究这两种索引类型。另外,为了更好地理解索引结构,有必要对堆结构有所了解。最后,简单介绍一下系统访问数据的方式。9/1/202111堆堆是不含聚集索引的表,表中的数据没有任何的顺序。堆的信

7、息记录在sys.partitions目录视图中。每一个堆都可能有多个不同的分区,每一个分区都有一个堆结构,每一个分区在sys.partitions目录视图中都有一行,且index_id=0。也就是说,每一个堆都可能有多个堆结构。9/1/202112堆结构示意图9/1/202113聚集索引聚集索引是一种数据表的物理顺序与索引顺序相同的索引,非聚集索引则是一种数据表的物理顺序与索引顺序不相同的索引。聚集索引的叶级和非叶级构成了一个特殊类型的B树结构。B树结构中的每一页称为一个索引节点。索引的最低级节点是叶级节点。在一个聚集索引中,某个表的数

8、据页是叶级,在叶级之上的索引页是非叶级。在聚集索引中,页的顺序是有序的。应该在表中经常搜索的列或按照顺序访问的列上创建聚集索引。其中,用于指定聚集索引第一页地址信息的root_page来自sys.syste

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。