建立数据索引.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目四 建立应用数据库 任务 任务一 创建数据库文件 任务二 建立数据表和数据完整性 任务三 建立数据索引 任务三 建立数据索引 任务说明 前面我们检索数据都是从数据表开始逐行往下扫描,才找到所需数据。在数据表存有大量数据情况下,这种查找速度会很慢。 如何提高数据的查询速度 ?大家联系一下在书中查找内容,如何快速找到?我们自然会想到了书的目录。 在数据库查找数据也一样,要是能创建一个类似书目录一样的对象,那查询速度也会快很多。这种能提高数据检索的方法就是建立索引文件。 本节任务是为数据库表建立系统所需的索引文件,实现数据的快速查询。 数据的存储与索引结构 数据页 是数据存储的最小物理单位,大小为8K,每页只有8060字节可以存储数据,其他字节用来存储系统页信息。 行不跨页 数据表中数据除了text、image、ntext数据用了一个指针指向另外单独页存储外,其他数据都存储于数据页中,且行不跨页,即一行数据不允许超过8060个字节。 (2005版本的变长数据类型除外), 每行都标记着该行首与页首的偏移量。 数据的存储与索引结构 没有定义聚集索引的表 所有数据页都以堆的方式组织存放,堆中数据行不是以特定的顺序存储,数据页也没有特定的顺序,当行插入到已满的数据页时,就会拆分数据页。 使用了索引分配映射表,来维护堆中数据页之间的连接关系 聚集索引的表 聚集索引会改变行的物理行的顺序,使数据行的物理存储顺序与索引键的顺序一致。 数据的存储与索引结构 索引结构 B树结构,索引中的每一页包含一个页首,页首后面跟着索引行,每一个索引行包含有一个键值以及一个指向加一页或数据行的指针 。 在非聚集索引的表中,叶级节点包含了具有指针的行定位器,定位到包含键值的数据行。 在聚集索引的表中,叶级节点就是数据页。 索引的优缺点 索引的作用: 通过创建唯一性索引,可保证每行数据的唯一性。 可以大大加快数据的检索速度 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 索引的缺点: 创建索引和维护索引要耗费时间 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间。 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护。 创建索引的指导原则: 在经常需要搜索的字段上创建索引。 在主键上创建索引。 在经常用于连接的列上创建索引,即外键上创建索引。 在经常需要根据范围进行搜索的列上创建索引。 在经常需要排序的列上创建索引。 在经常用在WHERE子句中的列上创建索引。 索引类型 聚集索引 决定表中数据实体的顺序,一个表格内只能有一个聚集索引。 非聚集索引 数据存放在一个地方,而索引是存在另外一个地方,并利用指针指出数据的存储位置(用在多种方式检索数据时)。 唯一性索引 组成该索引的字段或字段组合在表中具有唯一值。聚集与非聚集都可以是唯一性索引,如PRIMARY KEY 和UNIQUE 复合式索引 使用一个以上的字段来查询数据的索引。 索引的创建 系统自动建立索引(唯一性): 添加主键约束(PRIMARY KEY)(聚集) 添加唯一性约束(UNIQUE)(非聚集) 用SQL Server Management Studio建立索引 操作:展开数据库中所需表,进入表设计器,单击任一字段的右键中的“索引/键”,弹出如图 四?7对话框,选择索引字段,设排序顺序,单击“确定”。 索引的创建 用T-SQL语句建立: 语法格式: CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX 索引名 ON 表名(字段名[ASC|DESC][,…n]) [WITH 索引选项] [ON 文件组] 索引选项::=PAD_INDEX [ FILLFACTOR=填充因子] [IGNORE_DUP_KEY ] [ DROP_EXISTING ] [ STATISTICS_NORECOMPUTE ] 例1:对供应商名称建立索引。 CREATE INDEX IX_providers_Nmae ON providers(ProviderNmae) GO EXEC sp_helpindex providers --查看索引 例2:对库存信息表中建立库存编号与商品编号组合字段上的索引 CREATE INDEX IX_ storageInfo _GoodStorage ON storageInfo (StorageID,GoodsID) WITH FILLFACTOR=80 GO 索引的维护 查看表的数据和索引

文档评论(0)

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

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

1亿VIP精品文档

相关文档