DB2 V9.7 本地分区索引
2009-07-23 16:13:47 来源:WEB开发网核心提示:简介在 DB2 V9.7 以前,范围分区表只支持全局索引(或者称为非分区索引),DB2 V9.7 本地分区索引,这样即使分区表的数据是分布在多个表空间上的,分区表的所有索引只能存储在同一个表空间中,分区消除技术帮助优化器先过滤了不需要的索引分区,只需要扫描相应的分区就能完成查询,这一特性限制了索引扫描只能在一个表空间上
简介
在 DB2 V9.7 以前,范围分区表只支持全局索引(或者称为非分区索引),这样即使分区表的数据是分布在多个表空间上的,分区表的所有索引只能存储在同一个表空间中。这一特性限制了索引扫描只能在一个表空间上对该索引的页面进行读取,导致读取页面过多并约束了扫描的并行性。
DB2 V9.7 使用分区索引的索引组织方案,即索引数据根据表的分区方案分布到多个索引分区中,每个索引分区都只引用对应数据分区中的表行。从 DB2 V9.7 开始,创建索引时默认创建分区索引,除非出现以下情况:
对 CREATE INDEX 语句指定了 UNIQUE,并且索引键未包括所有表分区键列。
创建基于空间数据的索引。
创建基于 XML 数据的索引
分区索引的创建
一个分区表可以同时存在分区索引和非分区索引。如果创建分区索引,那个每个索引分区将都包含单个数据分区的索引条目,索引叶子节点中的 RID 也将只指向单个数据分区。
在我们使用 Alter table 语句的 Attach Partition 子句将数据 Roll in 或者 Roll Out 分区表时,分区索引将特别有用。如果使用非分区索引,那么必须先发出 Set Integrity 语句,新添加的分区中的数据才能进入联机状态。这个过程可能非常消耗时间,并可能消耗大量日志空间。当使用分区索引时这些开销将会被消除。
分区索引的每个分区均采用 B 树结构存储,由于分区后一个大型 B 树被划分为若干小型 B 树,树的层数将会减少,这会提高数据的插入、更新、删除以及扫描的性能。同时我们执行查询时,DB2 将会采用分区消除优化方法提高扫描性能和并行性。分区消除技术帮助优化器先过滤了不需要的索引分区,只需要扫描相应的分区就能完成查询,这比扫描非分区的索引更为高效。
[]
- ››本地行业网站细分化将网站做强
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››DB2 存储过程中如何使用 Optimization Profile
- ››DB2 pureScale 新特性 -- Member Restart
- ››本地智慧:我奋斗了五年不是为了做垃圾站长
- ››DB2 Express-C 9.7.2 新增特性
更多精彩
赞助商链接