循序渐进db2笔记-索引教案.docVIP

  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文档。上传文档
查看更多
索引类型 唯一索引 它确保表中没有两个数据行具有完全相同的键值来帮助维护数据完整性。 尝试为已经包含数据的表创建唯一索引时,将检查组成该索引的列中的值是否唯一,如果包含具有重复键值的行,索引创建将失败。 为表定义了唯一索引之后,每当在索引中添加或更改键时就会强制唯一性(包括插入、更新、装入、导入和设置完整性以命名一部分)。 引: 唯一索引用来保证数据的唯一性,唯一索引一般性能要高于非唯一索引,只允许列表中出现一个键值,允许显示单个NULL。 例句: CREATE UNIQUE INDEX IDX_NAME ON TAB_NAME 非唯一性索引 维护频繁使用的数据值的排序顺序,这仅仅用于提高查询性能,不用于对关联的表强制执行约束。 引: 数据库管理器使用唯一索引和NOT NULL约束的组合来实现主键约束和唯一键约束。 可以说大部分的索引是非唯一索引,这和数据的分布有关系,一般的数据都具有可重复性特性,所以他们不能被定义为唯一索引。 非唯一索引可以使用命令: CREATE INDEX IDX_NAME ON TAB_NAME (COLNAME) 集群索引 数据页中行的顺序对应于索引中行的顺序。这就使得给定表中只能存在一个集群索引。在某些关系数据库管理系统中,集群索引的叶子节点对应于实际数据,而不是对应于指定位于其他地方的数据的指针。 集群索引作用: 如果对表进行了重组,那么会按照索引键的顺序将行插入数据页中。集群索引改善了以键的顺序扫描整张表的性能。 引: 群集索引允许对数据页采用更线性的访问模式,允许更有效的预取,并且避免排序。群集索引是要求数据在插入时,做更多的操作,将相临的数据条目放入相同的页,使得查询速度更快,因为每次访问索引页要将所有的索引条目都访问完毕才移到下一页,保证了缓存池中任何一个时刻都只有一个索引页存在。 群集索引的特点: 提高查询速度,数据页以键的顺序排列; 以键的顺序扫描整张表; 插入和更新需要做更多的事情,不建议经常插入和更新的表上做群集索引 非集群索引 两者都只包含索引结构中的键和记录标识。记录标识始终指向数据页中的行。 集群与非集群的区别 数据库管理器尝试按照相应的键在索引页中出现的顺序来将数据保存在数据页中,将尝试把具有相似键的行插入同一页中。 双向索引 双向索引允许按正反两个方向进行扫描。 CREATE INDEX语句的ALLOW REVERSE SCANS子句同时启用正反向索引扫描,反之DISALLOW REVERSE SCANS。 双向索引优点: 1.便于使用MIN和MAX函数 2.访存先前的键 3.不需要数据库管理器创建临时表来进行反向扫描 4.消除冗余反向顺序索引 MDC块索引 当我们创建MDC时,数据库会自动生成块(block)索引,MDC索引相关的块索引是排列到一起的,可以显著的提高性能。 DB2数据库管理器使用B+树结构进行索引存储。 索引的缺点 1. 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2. 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间。 3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 索引访问机制 1.大多数情况下,DB2优化器喜欢使用索引。 2.如果没有WHERE子句,全扫描是最佳的。 3.对于非常小的表甚至较大的表,使用索引有可能不会优化性能,读取索引页再读取数据页,组织索引需要额外的I/O以实现查询。 4.表扫描也有其优点。DB2会限定要扫描的页面;还可以调用顺序预取以在请求某些页面之前就读取这些页面。 索引扫描方式 匹配索引扫描 Matching Index Scan 索引:INDEX(CITY,CNTRY ,ADD_DATE) 查询:SELECT???ADD_DATE?? FROM CUSTOMER WHERE? CITY?=?’BEIJING’ ?AND??CNTRY?=?‘CHINA; 由于此查询在新建索引的第一列上存在谓词条件,DB2 能够根据这个谓词条件从索引树的根节点开始遍历,经过中间节点最后定位到某一个叶子节点,然后从此叶子节点开始往后进行在叶子节点上的索引扫描,直到找到所有满足条件的记录。 非匹配索引扫描 Non-matching Index Scan 索引:INDEX(CITY,CNTRY ,ADD_DATE) 查询:SELECT???ADD_DATE?? FROM CUSTOMER WHERE? CITY?=?’BEIJING’ ?AND??CNTRY?=?‘CHINA; 将 add_date

文档评论(0)

502992 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档