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其他的分区表写法及索引的添加。
首先,分区表和普通表大致上区别不大,仅多了一个分区的字段,以及分区范围值。
以下就是我写的一个分区表的案例:
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 constraint用法
- SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
- SQLDbx db2 出现乱码
- DB2 "检测到 DB2 管理服务器通信错误" 的解决方法
- DB2存储过程
- DB2 SQL 消息
- DB2与oracle类型对比
- db2 进程
- DB2中导入导出表数据
- maven自定义db2的jar包
- IBM DB2 SQL SPLIT 分割字符串
- DB2命令
- db2
- 向db2中插入大量数据处理方法
- ssh连接db2
- 考虑大对象:利用 JAVA 操作 DB2 Universal Database 中的 LOB 数据
- Linux上的db2 卸载
- 独辟蹊径:在 UNIX 平台上安装 DB2 V8.1 的另一种方法
- DB2错误码解释对照
- 四大数据库的比较(SQL Server、Oracle、Sybase和DB2)