DB2分区表创建及分区索引的创建

本文介绍了DB2分区表的使用,强调其类似Oracle的原理,通过分区存储提升查询和DML操作效率。同时,详细讨论了分区索引的优势,包括优化B树结构、提高数据操作性能以及利用分区消除技术加速查询。还提到了在数据Roll in或Roll Out时,分区索引相对于非分区索引的显著优势,避免了Set Integrity语句带来的资源消耗。
摘要由CSDN通过智能技术生成

                一直用oracle数据库,近期刚接触DB2,最近用到DB2分区表,db2的资料太少了,下面总结下db2分区表的使用及本地索引的创建。

         db2分区表:使用原理跟oracle类似。最核心的是分区表会把表分区存储,在用到分区字段扫描数据时,只需要扫描数据所在分区的数据块,不需要全部扫描。两外删除更新时都很高效。

         db2分区索引:分区索引的每个分区均采用 B 树结构存储,由于分区后一个大型 B 树被划分为若干小型 B 树,树的层数将会减少,这会提高数据的插入、更新、删除以及扫描的性能。同时我们执行查询时,DB2 将会采用分区消除优化方法提高扫描性能和并行性。分区消除技术帮助优化器先过滤了不需要的索引分区,只需要扫描相应的分区就能完成查询,这比扫描非分区的索引更为高效。

              在我们使用 Alter table 语句的 Attach Partition 子句将数据 Roll in 或者 Roll Out 分区表时,分区索引将特别有用。如果使用非分区索引,那么必须先发出 Set Integrity 语句,新添加的分区中的数据才能进入联机状态。这个过程可能非常消耗时间,并可能消耗大量日志空间。当使用分区索引时这些开销将会被消除。

              一个分区表可以同时存在分区索引和非分区索引。如果创建分区索引,那个每个索引分区将都包含单个数据分区的索引条目,索引叶子节点中的 RID 也将只指向单个数据分区。一个分区表可以同时存在分区索引和非分区索引。如果创建分区索引,那个每个索引分区将都包含单个数据分区的索引条目,索引叶子节点中的 RID 也将只指向单个数据分区。
          分区表创建:
       
drop table DW_DEP_ACCT_DETAIL_HISTORY;commit;
CREATE TABLE
    DW_DEP_ACCT_DETAIL_HISTORY
    (
        DATA_DT VARCHAR(8) NOT NULL,
        CYC VARCHAR(4) NOT NULL,
        ORG_ID VARCHAR(8),
        CUST_TYPE VARCHAR(8),
        CS_NO VARCHAR(12),
        CU_ID VARCHAR(30) NOT NULL,
        ACCT_NAME VARCHAR(100),
        AGE VARCHAR(4),
        REGI_ADDR VARCHAR(200),
        EDUCATION VARCHAR(8),
        PRDT_ID VARCHAR(8),
        ACCT_ID VARCHAR(30) NOT NULL,
        BG_DT VARCHAR(8),
        ED_DATE VARCHAR(8),
        OPN_STAFF VARCHAR(10),
        BAL DECIMAL(16,2),
        LAST_YEAR_PERIOD_BAL DECIMAL(16,2),
        DAY_AVG_BAL DECIMAL(16,2),
        LAST_YEAR_AVG_BAL DECIMAL(16,2),
        SURPLUS_TP VARCHAR(10),
        STAFF_FL VARCHAR(8),
        LOAN_CUS_FL VARCHAR(8),
        DEP_LOAN_FL VARCHAR(8),
        chsx    varchar(8) not null  ,
        loan_bal DECIMAL(16,2),
        PRIMARY KEY (CU_ID, ACCT_ID, DATA_DT, CYC,chsx) )
 PARTITION BY RANGE(DATA_DT)
( STARTING '20130601'  ,
  STARTING '20130701' ENDING 
  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值