欢迎来到天天文库
浏览记录
ID:50047208
大小:438.50 KB
页数:32页
时间:2020-03-08
《数据库原理与SQL Server教程 教学课件 作者 王路群 第10章 索引.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据库原理与SQLServer教程第十章索引第十章索引10.1索引简介10.2索引类型10.3创建索引10.4查看和删除索引实训10创建和管理索引2021/7/21数据库原理与SQLServer教程10.1索引简介10.1.1索引10.1.2使用索引的优缺点10.1.3SQLServer对索引的支持2021/7/21数据库原理与SQLServer教程10.1.1索引索引是对数据库表中一个或多个列(例如,employee表的姓氏(lname)列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的
2、行相比,索引有助于更快地获取信息。10.1索引简介2021/7/21数据库原理与SQLServer教程10.1.2使用索引的优缺点索引并不是必须的,索引是为了加速检索而创建的一种存储结构,使用索引的主要优点就是可以大幅度提高对数据库表中数据的查询速度。每个索引在一个表的数据页面以外建立索引页面,在索引页面中的行包含了对应表中数据行的逻辑指针,通过该指针可以直接检索到数据行,以此加速了对物理数据的检索。合理的规划和使用索引,能较大程度地提高数据操作的速度,但对索引的不当使用却可能降低数据操作的速度。通常情况下,只有当经
3、常查询索引列中的数据时,才需要在表上创建索引。如果应用程序非常频繁地更新数据,或磁盘空间有限,那么最好限制索引的数量。10.1索引简介2021/7/21数据库原理与SQLServer教程10.1.3SQLServer对索引的支持SQLServer2000全面支持索引。SQLServer2000不仅支持针对数据库表的一列或多列创建索引,而且能在计算列上创建索引,此外,还能通过在视图上创建索引以提高查询速度。在工具上,SQLServer2000既能通过查询分析器实现对索引的创建和管理,也通过企业管理器实现对索引的管理,同
4、时,SQLServer2000的查询优化器还能自动地应用索引以提高各种操作速度。10.1索引简介2021/7/21数据库原理与SQLServer教程10.2索引类型10.2.1聚集索引和非聚集索引10.2.2唯一索引和组合索引2021/7/21数据库原理与SQLServer教程10.2索引类型10.2.1聚集索引和非聚集索引1.聚集索引聚集索引的两个最大的优势是:(1)快速缩小查询范围(2)快速进行字段排序聚集索引确定表中数据的物理顺序,创建聚集索引后,数据将对指定被索引的列进行排序,一个表中只能包含一个聚集索引。聚
5、集索引实际上是和被索引的数据保存在一起,就象汉语字典的正文本身也就是一个聚集索引一样,汉语字典是按汉字拼音排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引,但这个聚集索引可以包含多个列。2021/7/21数据库原理与SQLServer教程10.2索引类型10.2.1聚集索引和非聚集索引1.聚集索引在创建聚集索引之前,应该先了解数据是如何被访问的。可考虑将聚集索引用于以下几种情况:(1)包含数量有限的唯一值的列,如state列只包含50个唯一的州代码。(2)使用下列运算符返回一个范围值
6、的查询:BETWEEN、>、>=、<和<=。(3)被连续访问的列。(4)经常被使用联接或GROUPBY子句的查询访问的列。(5)返回大结果集的查询。对于频繁更改的列,则不适合创建聚集索引。SQLServer2000默认对于表中的主键自动创建聚集索引。2021/7/21数据库原理与SQLServer教程10.2索引类型10.2.1聚集索引和非聚集索引2.非聚集索引非聚集索引指定表的逻辑顺序,一个表中可以包含多个非聚集索引。非聚集索引类似于书籍的目录,索引中的项按照索引键值的顺序单独存储,表中信息的保持其自身的顺序不变存
7、储在另一个位置,索引中包含指向数据存储位置的指针,而书籍中的目录则仅记录指定章节的页码。在非聚集索引中,表中各行的物理顺序与键值的逻辑顺序不匹配。2021/7/21数据库原理与SQLServer教程10.2索引类型10.2.1聚集索引和非聚集索引2.非聚集索引在创建非聚集索引之前,同样需要了解数据是如何被访问的。可考虑将非聚集索引用于下面的情况:(1)包含大量非重复值的列,如姓氏和名字的组合(如果聚集索引用于其他列)。如果只有很少的非重复值,如只有1和0,则大多数查询将不使用索引,因为此时表扫描通常更有效。(2)不返
8、回大型结果集的查询。(3)返回精确匹配的查询的搜索条件(WHERE子句)中经常使用的列。(4)经常需要联接和分组的决策支持系统应用程序。应在联接和分组操作中使用的列上创建多个非聚集索引,在任何外键列上创建一个聚集索引。(5)在特定的查询中覆盖一个表中的所有列。这将完全消除对表或聚集索引的访问。2021/7/21数据库原理与SQLServer教程
此文档下载收益归作者所有