网站大量收购独家精品文档,联系QQ:2885784924

SQL Server 2005实用教程 李伟红 第8章 索引的创建和使用新.ppt

SQL Server 2005实用教程 李伟红 第8章 索引的创建和使用新.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 索引的创建和使用 本章学习目标 了解索引的概念 了解索引的优点 掌握索引的分类 掌握创建、修改和删除索引的方法 8.1 概述 8.1.1 索引的概念 在数据库中,如果想在某个表中快速查找满足条件的记录,可以创建索引。索引可以使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。创建索引可以加快从表或视图中检索数据的速度。索引包含由表或视图中的一列或多列生成的键。 8.1.1 索引的概念 当SQL Server进行数据查询时,查询优化器会自动计算现有的几种执行查询方案中,哪种方案的开销最小,速度最快,然后SQL Server就会按照该方案来查询。所以,可以通过高效的有序查找算法(如折半查找等)找到索引项,再根据索引项中记录的物理地址,找到查询结果的存储位置。 8.1.2 索引的优点 使用索引可以大大提高系统的性能,其具体表现在: 可以大大加快数据检索速度。 通过创建唯一索引,可以保证数据记录的唯一性。 在使用ORDER BY和GROUP BY子句进行检索数据时,可以显著减少查询中分组和排序的时间。 使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。 8.1.2 索引的优点 可以加速表与表之间的连接。 建立索引的一般原则是: 对经常用来检索的字段建立索引。 对数据表中的主键建立索引。 对数据表中的外键建立索引。 对经常用于连接的字段建立索引。 8.1.3 索引的分类 在SQL Server 2005中提供的索引类型主要有以下几类:聚集索引、非聚集索引、唯一索引、包含性列索引、索引视图、全文索引以及XML索引。 1.聚集索引和非聚集索引 按照存储结构的不同,可以将索引分为两类:聚集索引和非聚集索引。每个表最多可以有1个聚集索引和249个非聚集索引。其中包括为支持表中所定义的PRIMARY KEY和UNIQUE约束而生成的索引。 8.1.3 索引的分类 聚集索引对表在物理数据页中的数据按列进行排序,然后再重新存储到磁盘上。一个表只能有一个聚集索引。用聚集索引查找数据很快。聚集索引一般创建在表中经常搜索的列或者按顺序访问的列上。 创建聚集索引时应该考虑以下几个因素: 每个表只能有一个聚集索引。 创建任何非聚集索引之前要首先创建聚集索引。 关键值的唯一性使用UNIQUE关键字或者由内部的唯一标识符明确维护。 要保证有足够的空间创建聚集索引。 8.1.3 索引的分类 使用非聚集索引不会影响数据表中记录的实际存储顺序。非聚集索引中存储了组成非聚集索引的关键字值和行定位器。由于非聚集索引使用索引页存储,因此它比聚集索引需要较少的存储空间,但检索效率比聚集索引低。由于一个表只能建一个聚集索引,当用户需要建立多个索引时,就需要使用非聚集索引了。每个表中最多只能创建249个非聚集索引。 8.1.3 索引的分类 在下列情况下,可以考虑使用非聚集索引: 含有大量唯一值的字段。 返回很小的或者单行结果集的检索。 使用ORDER BY子句的查询。 8.1.3 索引的分类 2.唯一索引 如果要求索引中的字段值不能重复,可以建立唯一索引。 创建唯一索引时,对于具有单个字段的索引,要求这个字段中的各个值不能重复。也可以对多个字段的组合创建索引,索引中包含多个字段的复合索引也可以是唯一索引,多个字段的组合取值不能重复。 注意:一个索引中最多可以包含16个字段的组合,并且索引中的所有字段必须属于同一个数据表。 8.2 创建索引 在SQL Server 2005中,索引可以由系统自动创建,也可以由用户手工创建。 系统在创建表中的其他对象时可以附带地创建新索引,例如新建表时,如果创建主键或者唯一性约束,系统会自动创建相应的索引。 例8-2-1:在STUDENT数据库中创建一个新表T_DEPARTMENT,并将其中的D_NAME字段设置为聚集的唯一索引。 8.2 创建索引 如果在SQL Server管理控制台中用鼠标设置主键,系统会自动创建一个唯一的聚集索引,索引名为“PK_表名”。如果是使用Transact-SQL语句添加主键约束,也会创建一个唯一索引,但索引名称为“PK_表名_xxxxxxxx”,其中x由系统自动生成的。 8.2 创建索引 如果使用NONCLUSTERED关键字,会生成非聚集的唯一索引;使用CLUSTERED关键字,会生成聚集的唯一索引。不使用关键字时,如果此表存在聚集索引,则生成非聚集的唯一索引,否则生成聚集的唯一索引。 例8-2-2:在STUDENT数据库中创建一个新表T_SPECIALTY,并将其中的P_NUMBER字段设置为主键。 8.2.1 使用SQL Server管理控制台创建索引 使用SQL Server管理控制台直接创建索引可以使用两种方法: 方法一:在SQL Server管理控制台中,展

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档