您的位置:首页 > 数据库

DB2 数据库分区表语法

2016-11-29 14:12 106 查看
               前端时间,做某银行的项目,需要用到分区表,之前从来没有接触过,特此去了解了一下。现在完成项目后,做一个总结,也希望能给你们带来些许帮助。

            首先,分区表和普通表大致上区别不大,仅多了一个分区的字段,以及分区范围值。

            以下就是我写的一个分区表的案例:

   CREATE TABLE ESS_TABLE_LOG

   ( SERIALNUM VARCHAR(30) NOT NULL,--流水号

  USERID      VARCHAR(10) NOT NULL,--用户号

  USERTYPE          VARCHAR(1) NOT NULL,-用户号类型

  OPERATORNO          VARCHAR(24) NOT NULL,--操作号

  PHONENO       VARCHAR(26) NOT NULL,--手机号

  STATUS       VARCHAR(2),--状态

  SHIPDATE         DATE) --分区字段

  PARTITION BY RANGE(SHIPDATE)

(STARTING MINVALUE, STARTING '11/1/2016' ENDING '12/31/2030' EVERY 1 MONTH, ENDING MAXVALUE);

(1)分区表的关键字PARTITION BY RANGE,这个是固定的语法,后面跟着的是分区字段,以及分区的范围。

(2)这个分区表是按每月进行分区的,可根据 describe data partitions for table
ESS_TABLE_LOG;查询具体的分区情况。

(3)查询匹配日期的分区数据:

 select datapartitionnum(SHIPDATE) as PartitionId,
SHIPDATE,SERIALNUM ,USERID,USERTYPE,PHONENO from
ESS_TABLE_LOG  where
SHIPDATE between '11/21/2016' and '11/22/2016' order by
SHIPDATE;

该分区表未设置索引,如果当数据量多大的时候,做删除,性能会比较低,但是银行根据脚本,批量执行,所有就没加索引。有兴趣的朋友可以再去深入了解下db2其他的分区表写法及索引的添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  db2数据库 分区表