第7篇2 索引.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章2 索 引 本章知识点 概念 特点 设计原则 类型 结构 创建索引创建、修改、删除和重命名索引 使用索引 数据库引擎优化顾问 概念 索引是一个独立于表或视图的对象,是一种有序结构,可以帮助用户更快速地找到具体的数据记录。 它由某个表中的一列或若干列的值,以及这些值在表中存储的物理地址组成。 创建索引的原因 使用索引可以极大地改善数据库的性能,主要表现在以下几个方面: 通过创建唯一性索引,可以保证每一行数据的唯一性。 可以大大的加快数据的检索速度,这是使用索引的最主要的原因。 在使用order by和group by子句进行数据检索时,可以减少查询中分组和排序的时间。 特点 加速表与表之间的连接,特别是在实现数据库的参照完整性上很有意义。 可以在检索数据的过程中提高系统性能。 特点 不足之处 创建和维护索引需要耗费时间。 索引需要占用物理磁盘空间,而且为了自动维护索引,在插入、删除或更新数据的时候,SQLServer还要花费额外的操作来维护索引的有效性,创建利用率不高的索引就是浪费。 为记录数少的表创建索引,提高数据访问速度的效果并不明显。 为数据内容重复率高的字段创建索引收效甚微。 设计原则 经常在检索条件中出现且重复率低的字段 主键和外键约束的字段 频繁用于表之间连接的字段 经常需要作为排序和分组标准的字段 索引设计原则能够帮助我们更好的进行数据库优化,但它并不是万能的,也不是一成不变的。 索引分类 从索引表的物理顺序、属性列的重复值以及索引列中所包含的列数等不同的角度,可以把索引分为3类: 聚集索引和非聚集索引 聚集索引中对应的键值的顺序与表中数据记录的物理存储顺序是完全一致的,也就是说,在聚集索引中,表中各行的物理顺序与索引中行的物理顺序是相同的。 创建非聚集索引之前要先创建聚集索引,因为聚集索引要将表中的所有数据完全重排。 索引分类 在创建索引期间,SQLServer临时使用当前数据库的磁盘空间,聚集索引需要的工作空间大约为表大小的1.2倍,所以在创建聚集索引时要保证有足够的硬盘空间。 由于每个表只能以一种排序方式存储在磁盘上,所以一个表只能有一个聚集索引。 当表中设置有主键约束时,如果表中没有聚集索引,且主键约束没有使用NONCLUSTERED选项,系统会自动创建一个聚集索引。 索引分类 索引分类 当用户需要多种方法搜索数据时,可以使用非聚集索引,默认情况下创建的索引是非聚集索引。非聚集索引包含有序的键值,但键值对应表中的记录的物理存储顺序与索引中键值的顺序并不相同,非聚集索引不会改变表中数据行的物理存储位置和顺序,它只包含索引值和指向数据行的指针。例如,我们经常按照学生姓名的升序查看一个班的学生信息,这时就可以在学生表的姓名列上创建一个非聚集索引。 非聚集索引需要较少的工作空间,但检索效率比聚集索引低。 非聚集索引一般创建在含有大量唯一值的字段上。 每个表最多可以创建249个非聚集索引。 索引分类 索引分类 惟一索引和非惟一索引 惟一索引要求表中索引列的任意两行不能有重复值,而非惟一索引则没有这个要求 。当为表创建唯一索引时,系统首先检查表中已有的数据,如果出现被索引列存在重复值,系统将停止建立该索引,显示错误提示。 当表中创建一个唯一性约束时,系统自动创建一个相应的唯一索引。 NULL值也会被认为是重复的。 索引分类 单列索引和复合索引 单列索引是对表中单个字段建立的索引,复合索引是对表中的两个或两个以上字段的组合建立索引。 一个复合索引最多可以有16个字段,并且所有的字段必须在同一个表中。复合索引中的字段的顺序可以和表中字段的顺序不同,在复合索引中应该首先定义最有可能是唯一值的字段。 结构 索引B树 SQL SERVER通过平衡二叉树(Balanced Binary Tree)这一结构来组织索引 B树结构的索引可分为叶级和非叶级 非叶级包括根和中间级,存放了索引的键值和指针 叶级就是树的叶,存放的是索引的键值和指针或者数据记录 结构 聚集索引 聚集索引B树的特征 非叶节点存放的是包含索引行的索引页,索引行由键值和指针组成 叶节点存放的是以数据页形式组织的表的记录 结构 聚集索引 结构 非聚集索引 非聚集索引B树的特征 所有节点存放的都是是包含索引行的索引页 结构 非聚集索引 思考 从概念和结构上来分析,聚集索引和非聚集索引的区别是什么? 创建索引 可以通过可视化向导来创建索引也可以通过sql语句创建索引。 通过可视化向导的方式创建所以可以按照以下步骤: (1)在SqlServer管理平台中,展开指定的数据库,选择要创建索引的表,展开表节点,选择“索引”这一项,右键单击,在快捷菜单中选择“新建索引”。 (2)进入“新建索引”窗口,在该窗口中的“常规”选项页的“索引名称”文本框里输

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档