数据库技术及应用第6章 索引.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库技术及应用:SQL Server 2008 数据库技术及应用:SQL Server 2008 * 数据库技术及应用:SQL Server 2008 * 数据库技术及应用:SQL Server 2008 * 数据库技术及应用:SQL Server 2008 下课了…… 休息一会儿…… 本章主要内容 索引基本概念 什么是索引 聚集索引 非聚集索引 唯一索引 索引选项 创建索引 管理索引 在浏览书籍的时候,为了阅读某一方面的知识,一般很少按页码在书中逐页的翻找,而是根据书前面的目录,找到指定的内容所在正文中的页码信息,进而快速的找到所要查阅的内容。数据库索引好比是一本书前面的目录,能够加快数据库大量数据的查询速度,大大提高数据库的查询性能。 6.1 基本概念 6.1.1 什么是索引 数据的存储方式分为两种:随机存储方式和固定存储方式。 随机存储方式是按照数据输入的顺序被存储在磁盘上的任意的空闲空间上; 固定存储方式是数据被存储在预先制定的磁盘空间上。 按照数据的存储效率来看,随机存储方式更胜一筹。 6.1.1 什么是索引 数据库索引是一个表中包含的值的列表,其中注明了表中包含各个值的行数据所在的存储位置。 索引一般采用B树结构,不论表中的行存储在什么位置,都能够以相同的方法和速度进行查询。 如图所示。 6.1.1 什么是索引 B树索引结构是由根、分支以及叶子所构成的,图中虽然只有两个分支且位于同一层,但是在实际应用中它可以有很多层,且每层上都可以有很多分支。分支的数量还会随着叶子的不断分割而不断增加。所有键值保存在叶子中。键值在每个节点中保持排定的顺序。 索引的基本类型有聚集索引、非聚集索引和唯一索引。 6.1.2 聚集索引 聚集索引中键值的逻辑顺序决定了表中相应行的物理顺序。字典的汉语拼音音节表就是一个聚集索引。 一个表中只能包含一个聚集索引。 聚集索引能够提供比非聚集索引更快的数据访问速度。 聚集索引对于那些经常要搜索列在连续范围内的值的查询特别有效。 在最常查询的列上建立聚集索引以提高查询效率。 6.1.3 非聚集索引 非聚集索引不重新组织表中数据的顺序,而是通过对每一行数据存储索引列值并用一个指针指向数据所在的位置。 一个表中可以拥有多个非聚集索引。 创建过多的非聚集索引可能会对数据修改性能产生负面影响。 SQL Server中的表可以有249个非聚集索引。 6.1.4 唯一索引 唯一索引可以确保索引列不包含重复的值,包括NULL值。 唯一索引可以只包含一个列,也可以有多个列共同构成。 SQL Server会自动对带有唯一索引的列强制其唯一性。如果试图在表中插入重复值,就会产生错误,对数据的插入或修改就会失败。 6.1.5 索引选项 FILL FACTOR选项只应用于索引的叶级。 索引页满时,如果SQL Server需要向页中写入一个条目,就肯定会发生一次页拆分。如果索引中频繁的页拆分,很快就会得到大量只包含了部分数据的索引页。“碎片化”的索引需要大量读操作才能定位目标信息。为了控制发生页拆分的频率,可以为索引制定一个填充因子。提供填充因子选项是为了优化索引数据存储。当创建或重新生成索引时,填充因子值可确定每个叶级页上要填充数据的空间百分比,以便保留一定百分比的可用空间供以后扩展索引。填充因子的设定直接影响数据表的操作效率。 填充因子值是1—100之间的一个百分比。服务器范围的默认值是0,将几乎最大限度的填充叶级页。 PAD_INDEX选项应用于索引的中间级和根级页。如果引入大量的叶级页,造成中间级以及根级的页拆分,则可以使用该选项。 6.1.5 索引选项 SORT_IN_TEMPDB选项将临时排序的工作表在tempdb数据库中创建。 IGNORE_DUP_KEY选项设置后,为可能产生重复值的行生成警告信息,同时只有这些行才会被拒。不会出现在执行多行插入时,即使只有一行产生了一个重复值,整个事务处理也会回滚。 6.2 创建索引 使用SSMS表设计器创建索引 使用T-SQL语句创建索引 创建索引的语法格式为: CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX 索引名 ON 表名(列名[ASC|DESC][,……]) 说明: UNIQUE:创建的索引是唯一索引 CLUSTERED:创建的索引是聚集索引 NONCLUSTERED:创建的索引是非聚集索引 ASC:升序,默认值是ASC DESC:降序 例如: use Student go create unique NONclustered index IX_STUDENTS_Student_id on STUDENTS(Student_id) go 在Student数据库中的STUDE

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档