SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt

SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt

ID:50028315

大小:598.50 KB

页数:68页

时间:2020-03-07

SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt_第1页
SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt_第2页
SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt_第3页
SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt_第4页
SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt_第5页
资源描述:

《SQL Server基础教程 教学课件 作者 董翔英 等第8章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8.1索引概述8.2创建索引8.3删除索引8.4使用好的索引第八章使用索引提高查询效率索引是一个系统控制的数据库文件,或者说是一个表,如同书的目录索引一样,索引表中有按照一定顺序建立的索引键值和行定位器,行定位器指向键值对应的数据行。在数据库中检索数据时,系统8.1索引概述先在索引表中查找键值,然后根据数据行指针快速定位一个记录。1、索引的作用对于数据库而言,索引并不是必需的,但没有索引,SQLServer的运行是很勉强的,因为如果没有索引,每次数据查询时系统都要进行表扫描,对成千上万的数据行的每一行进行搜索排查,这种情况下数据库就象一辆没有汽油的车子,只

2、能推着它走。对于大型数据库系统,为了确保数据库更好地发挥作用,需要使用各种索引。使用索引可以加速数据检索速度,但索引的作用不仅限于此,索引还可以保证数据行的唯一性,增强外键的关系,实现表之间的参照完整性,加快表的连接,在进行分组和排序时,索引可以减少分组和排序时间。索引可以由系统自动建立,也可以由数据库拥有者或数据库管理员手工创建。必须根据表中列数据的使用特性来创建索引,而不能一味地乱建索引,在什么情况下使用索引,使用什么索引,以及在什么情况下不使用索引,这需要根据数据的使用或根据经验来判断,最好在建库时制定好索引策略,而不要等到建库以后再考虑。2、索引使

3、用的场合数据表不一定必须创建索引,创建索引需要额外的磁盘空间来存储索引树结构,而且索引创建后,系统要对每个索引不断进行维护,这会耗费系统的资源,影响系统效率。是否建立索引及建立什么索引,要考虑数据表的具体使用情况,以下场合往往需要索引:(1)当创建一个表并指定一个列作为主键或作为一个唯一约束时,SQLServer就自动地在表中创建一个唯一索引,这个索引确保主键或唯一键值不能重复。(2)当定义一个在列或列集上的外键约束,需要创建一个在外键列上的唯一索引。(3)频繁用于查询(WHERE子句或HAVING子句)、分组(GROUPBY子句)或排序(ORDERBY子

4、句)的列也应被索引。在进行数据检索时,索引是非常有用的,在进行数据修改时,情况就不一样了。对于现有行的每次新,指向行的索引也将随着更新,而索引的更新实际上是一个多行交叉表操作,需要消耗系统资源和占用额外时间。如果数据库主要用于数据输入或事务操作,每天要接受上百万的数据插入和更新,最好不要创建索引,因为花费在修改繁琐的索引数据表的额外时间可能使应用程序慢得不能忍受。3、索引的分类如果从来没有任何索引,SQLServer不可能自动按照特定的顺序存储数据,表中的数据行按最初进入数据库的位置排列,新加入的数据只能追加在表的尾部,这种情况称为堆集,查询时从头到尾搜索

5、扫描数据并按照发现的顺序返回被选中的行。如果要强制得到特定顺序的返回数据,就需要使用ORDERBY子句进行查询,在返回结果集之前,SQLServer在一个临时存储数据库里进行数据排序。索引后系统将产生索引文件,索引文件中索引键值按一定的规律排,索引文件由系统在后台维护,不用人工干预。索引类型按索引文件的存储方式可分为聚集索引和非聚集索引,按索引键值的特点或索引键的组成,索引可分为唯一索引和非唯一索引、复合索引和覆盖索引等,下面介绍常用的索引类型。(1)聚集索引和非聚集索引索引文件也是个SQLServer表,系统用树状结构对数据和索引文件进行存储和管理。树的

6、根页在顶部,中间是干页,底部是叶页。根和中间干层是索引页,叶页则构成表中的数据。叶页可能包含确切的用户数据记录,或者只包含那些指向数据记录的指针,这依赖于使用哪种索引,通常记录无次序存储时,叶类型的指针是行指针,它们在一个数据页面上直接指向用户数据记录所在的位置。聚集索引将数据按索引键值的规律进行排序和存储。叶结点存放的是数据页信息,数据页是按索引键进行物理排序,就像一本书的目录,记录了章节和对应页码,书的正文按章节的物理顺序排列,章节的对应页码是从小到大排列的。由于数据记录按聚集索引键的次序存储,当按规定范围的列值进行数据检索时,效果明显,因此聚集索引对

7、查找记录很有效。缺省情况下,当为一个表加入主键约束时,创建的索引是聚集索引,但这可以改变。聚集索引的键值不必是唯一的,但有主键约束的聚集索引的列值必须是唯一的。在每一个表上,聚集索引最多只能有一个,因为在一个表中物理排序只能有一可能。一个表可以没有聚集索引,这种情况就是堆集。非聚集索引包含索引键值和定位数据行的指针。如果表中有一个聚集索引,指针就是聚集索引键值,如果在表中没有聚集索引,指针就指向表中确切的行,如某些书后所附的引用词汇表,包含书中所有引用词汇和词汇所对应的章节,当需要查找一个引用词汇在书中的位置,先查找到词汇所在的章节,然后在目录中再查找章节

8、对应页码。在引用词汇表中引用词汇按升序排列,但章节的排列是没有规律

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

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

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