模块八++索引.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文档。上传文档
查看更多
教学目标 理解索引的优点和缺点 理解堆的结构特点 理解聚集索引和非聚集索引的特点 理解索引的类型 使用CREATE INDEX语句创建索引的方式 理解索引统计信息的特点和获得方式 理解查询优化的方式 教学过程 8.1 综述 8.2 索引的操作 8.3 设置索引的选项 8.4 索引的分析与维护 8.5 索引视图 8.1 索引综述 在Microsoft SQL Server系统中,可管理的最小空间是页。一个页是8KB字节的物理空间。插入数据的时候,数据就按照插入的时间顺序被放置在数据页上。一般地,放置数据的顺序与数据本身的逻辑关系之间是没有任何联系的。因此,从数据之间的逻辑关系方面来讲,数据是乱七八糟堆放在一起的。 数据的这种堆放方式称为堆。当一个数据页上的数据堆放满之后,数据就得堆放在另外一个数据页上,这时就称为页分解。 索引是一种与表或视图关联的物理结构,可以用来加快从表或视图中检索数据行的速度。 索引是以表列为基础的数据库对象,它保存着表中排序的索引列,并记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。 SQL Server 2008支持在表中任何列(包括计算列)上定义索引。 按索引结构的组织方式不同,可以将索引分为聚集索引和非聚集索引。 1) 聚集索引 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引 定义中包含聚集索引列。每个表只能有一个聚集索引,当建立主键约束 时,如果表中没有聚集索引,SQL SWERVER 2008 会用主键列作为聚 集索引键。 2) 非聚集索引 非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键 值,并且每个键值项都有指向包含该键值的数据行的指针,最多建立250 个非聚集索引或249个非聚集索引和1个聚集索引。 3) 唯一索引 要求索引中的字段值不能重复,可以建立唯一索引,也可以对多个字段的 组合创建索引。 使用索引的意义和代价 第一种方法是表扫描:就是指系统将指针放在该表的表头数据所在的数据页上,然后按照数据页的排列顺序,一页一页地从前向后扫描该表数据所占有的全部数据页,直至扫描完表中的全部记录。 第二种方法是使用索引查找。 代价: (1)索引需占用数据表以外的物理存储空间 (2)创建索引和维护需要花费时间 (3)对表进行更新时,索引需重建,降低了数据的维护速度。 建立索引的原则 对经常用来检索的字段建立索引; 对数据表中的主键一定建立索引; 对数据表中的外键可以建立索引; 对于经常用于连接的字段建立索引; 查询中很少涉及的列、重复值比较多的列不要建索引; 定义为text,image和bit数据类型的列不要建立索引。 8.2 索引的操作 在Microsoft SQL Server 2008系统中,既可以直接创建索引,也可以间接创建索引。 当直接创建索引时,既可以使用CREATE INDEX语句,也可以使用图形工具。 可以把创建索引的方式分为直接方法和间接方法。 直接创建索引的方法就是使用命令和工具直接创建索引。 间接创建索引就是通过创建其他对象而附加创建了索引。 例如:在表中定义主键约束或惟一性约束时,同时也创建了 索引。 创建索引应注意的几点: 只有表或视图的所有者才能创建索引,并随时创建。 创建索引时,对表进行复制,对数据进行排序,然后删除原始的表,因此数据库必须有足够的空间容纳数据的复本。 使用CREATE INDEX 创建索引时,必须指定索引名称、表及索引所应用的列的名称。 一个表最多创建249个非聚集索引。 复合索引的列的最大数目为16,各列组合的最大长度900B。 1、使用资源管理器创建索引(在当前数据库下表设计器中创建索引) 2、使用CREATE INDEX语句创建索引 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX 索引名 ON {表名|视图名} ( 字段名 [ ASC | DESC ] [ ,...n ] ) [ INCLUDE ( column_name [ ,...n ] ) ] [ WITH ( 索引选项 [ ,...n ] ) ] [ ON 文件组] 索引选项包含以下几项: (1)DROP_EXISTING :表示先删除存在的索引。 (2)IGNORE_DUP_KEY:控制当尝试向属于唯一聚集索引的列插入重复 的键值时所发生的情况。 (3)FILLFACTOR:填充因子。指定SQL Server 2008创建索引的过程 中,各索引页叶级的填满程度,取值1-100。 (4)PAD_INDEX:索引中间级中每个页(节点)保持开放的空间。 例:在表

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档