db2分區表的建立及分區索引建立可參考:
http://blog.csdn.net/yunxiu2804/article/details/38090677
在使用分區表時,會經常對分區表進行操作,包括删除分區、增加分區、清空分區資料等操作,下面對oracle和db2分區操作情況作了下比較,供大家參考:
1、删除一個分區
(1)、oralce中删除分區 part_201407
alter table dw_dep_acct_detail_history drop partition part_201407;
(2)、db2中删除分區 part_201407
在db2中删除需要兩步
1)、分離分區到其他表中
alter table table_name detach partition part_201407 into temp_dw_dep_acct_detail_history;
注意:這裡的表temp_dw_dep_acct_detail_history不需要建立。
2)、删除暫存分區資料的表
drop table temp_dw_dep_acct_detail_history;
2、新增一個分區:
(1)、oracle中新增分區part_201408
alter table dw_dep_acct_detail_history add partition part_201408 values less than ('20140831') tablespace sidy;
(2)、db2中新增分區part_201408
ALTER TABLE dw_dep_acct_detail_history ADD PARTITION part_201408 STARTING FROM ('20140801') INCLUSIVE ENDING AT ('20140831') EXCLUSIVE;
3、快速清空分區資料
(1)、oracle中清空分區part_201408資料
alter table dw_dep_acct_detail_history truncate partition part_201408; delete from dw_dep_acct_detail_history partition(part_201408) ;
truncate和delete都是清空分區表資料,差別是delete是dml操作,可復原,truncate是ddl操作不可復原。truncate的速度較快,但是會鎖表,不能進行并發操作,也就是不能同時删除兩個分區。
(2)、db2中清空分區part_201408資料
對于db2清空某個分區資料時比較複雜,需要三步。
1)、分離要删除的分區
alter table table_name detach partition part_201407 into temp_dw_dep_acct_detail_history;
注意:這裡的表temp_dw_dep_acct_detail_history不需要建立。
2)、重建分區
ALTER TABLE dw_dep_acct_detail_histroy ADD PARTITION part_201408 STARTING FROM ('20140801') INCLUSIVE ENDING AT ('20140831') EXCLUSIVE;
3)、删除暫存分區資料的表
drop table temp_dw_dep_acct_detail_history;
由此看來,oracle的分區表處理起來還是比較簡便高效的。
db2分區表的建立及分區索引建立可參考:
http://blog.csdn.net/yunxiu2804/article/details/38090677