第七章索引(2012)_第1页
第七章索引(2012)_第2页
第七章索引(2012)_第3页
第七章索引(2012)_第4页
第七章索引(2012)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数理学院 冯莉第七章第七章 索引索引12索引的概念SQL Server 2005中的索引7.1 索引的概念索引的概念建立索引的目的:建立索引的目的:加快查询速度,提加快查询速度,提高数据文件访问效率。高数据文件访问效率。 缺点:缺点:索引是有代价的(时、空)。索引是有代价的(时、空)。为了维护索引,对数据进行插入、更新、为了维护索引,对数据进行插入、更新、删除操作所花费的时间会更长。删除操作所花费的时间会更长。在设计和创建索引时,应确保对性能在设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源的提高程度大于在存储空间和处理资源方面的代价。方面的代价。1 1、Microsoft S

2、QL Server Microsoft SQL Server 支持在表中任何列(包支持在表中任何列(包括计算列)上定义的索引。括计算列)上定义的索引。2 2、如果一个表没有创建索引,则数据行不按任何、如果一个表没有创建索引,则数据行不按任何特定的顺序存储。这种结构称为特定的顺序存储。这种结构称为堆集堆集。SQL Server SQL Server 索引的两种类型为:索引的两种类型为: 聚集索引聚集索引 、非聚集索引、非聚集索引7.1 索引的概念索引的概念 特点:特点:数据文件中的记录按照索引键指定的顺序排数据文件中的记录按照索引键指定的顺序排序,使得具有相同索引键值的记录在物理上聚集在序,使得

3、具有相同索引键值的记录在物理上聚集在一起。一起。 一个表只能建立一个聚集索引。一个表只能建立一个聚集索引。7.1.1 聚集索引聚集索引 聚集索引结构聚集索引结构1) Microsoft SQL Server 将将索引组织为索引组织为B+树树。索。索引内的引内的每一页每一页包含一个包含一个页首页首,页首后面跟着,页首后面跟着索引行索引行。2)聚集索引在)聚集索引在sysindexes中标识,字段中标识,字段 indid=1。3)每个)每个索引行索引行都包含一个都包含一个键值键值以及一个以及一个指向较低级指向较低级页或数据行的指针页或数据行的指针。7.1.1 聚集索引聚集索引4 4)索引的每个页称

4、为)索引的每个页称为索引节点索引节点。 B B+ +树的树的顶端节点顶端节点称为称为根节点根节点。 索引的索引的底层节点底层节点称为称为叶节点叶节点。 根和叶之间的根和叶之间的任何索引级任何索引级统称为统称为中间级中间级。5 5)同级同级索引中的页链接在索引中的页链接在双向链接双向链接列表中。列表中。聚聚集集索索引引的的结结构构 7.1.1 聚集索引聚集索引聚集索引适用于:聚集索引适用于: 大量非重复值的列。大量非重复值的列。 经常被连续访问的列。经常被连续访问的列。 经常使用经常使用联接联接或或 GROUP BY 子句子句的查询访问的列。的查询访问的列。7.1.1 聚集索引聚集索引聚集索引聚

5、集索引不适不适用于:用于: 频繁更改频繁更改的列的列 特点特点:1 1)索引与数据行的存放顺序无关)索引与数据行的存放顺序无关 2 2)索引作为表的附加信息)索引作为表的附加信息 3 3)有利于单行查询,不利于范围查询)有利于单行查询,不利于范围查询一个表可以建立多个非聚集索引。一个表可以建立多个非聚集索引。7.1.2 非聚集索引非聚集索引 非聚集索引与聚集索引两个重大区别:非聚集索引与聚集索引两个重大区别: (1 1)数据行不按非聚集索引键的顺序排序和存储。数据行不按非聚集索引键的顺序排序和存储。(2 2)非聚集索引非聚集索引的的叶层不包含数据页叶层不包含数据页。非非聚聚集集索索引引的的结结

6、构构 特点特点:不允许表中任何两行具有相同索引值:不允许表中任何两行具有相同索引值主键索引是唯一索引的特定类型主键索引是唯一索引的特定类型7.1.3 唯一索引唯一索引系统访问数据库中数据的方法系统访问数据库中数据的方法: 表扫描表扫描 索引查找索引查找7.2 SQL Server 20057.2 SQL Server 2005中的索引中的索引1.1.创建索引创建索引 CREATE UNIQUECLUSTEREDNONCLUSTEREDCREATE UNIQUECLUSTEREDNONCLUSTERED INDEX index_name INDEX index_name ON table|vie

7、w(columnASC|DESC ON table|view(columnASC|DESC,n)n)如:在配电物资库存记录表如:在配电物资库存记录表StockStock的仓库的仓库warehousewarehouse列列上建立一个聚簇索引:上建立一个聚簇索引:CREATE CREATE CLUSTERED INDEXCLUSTERED INDEX Index1_warehouse Index1_warehouse ON Stock(warehouseON Stock(warehouse) ) 在在StockStock的的warehousewarehouse列上建立一个非聚簇索引:列上建立一个非

8、聚簇索引:CREATE CREATE NONCLUSTERED INDEXNONCLUSTERED INDEX Index2_warehouse Index2_warehouse ON Stock(warehouse descON Stock(warehouse desc) )2.2.查看索引查看索引 使用系统存储过程使用系统存储过程sp_helpindexsp_helpindex来查看特定来查看特定表上的索引信息。表上的索引信息。 如:如:Exec sp_helpindexExec sp_helpindex Stock Stock3.3.删除索引删除索引 DROP INDEX .index_

9、nameDROP INDEX . 如:如: DROP INDEX Stock.Index1_warehouseDROP INDEX Stock.Index1_warehouse 也可以用一条也可以用一条DROP INDEXDROP INDEX语句删除多个索引,语句删除多个索引,索引之间要用逗号隔开。索引之间要用逗号隔开。 7.2 SQL Server 2005中的索引中的索引4 4. CREATE TABLE CREATE TABLE 语句,支持在创建索引时使用下列约语句,支持在创建索引时使用下列约束:束: PRIMARY KEYPRIMARY KEY 创建唯一索引约束主码创建唯一索引约束主码 UNIQUEUNIQUE 创建唯一索引创建唯一索引 CLUSTEREDCLUSTERED 创建聚集索引创建聚集索引 NONCLUSTERED NONCLUSTERED 创建非聚集索引创建非聚集索引PRIMARY KEY PRIMARY KEY 约束约束默认为默认为 CLUSTERED CLUSTERED;UNIQUE UNIQUE 约束约束默认为默认为 NONCLUSTERED NONCLUSTERED。7.2 SQL Server 2005中的索引中的索引7.2 SQL Server 2005中的索引中的索引 使用使用Micros

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论