oracle和db2分区表操作比较及简要分析

本文对比分析了Oracle和DB2在删除、添加和清空分区表数据的操作,详细介绍了每种操作在两个数据库系统中的实现步骤,提供了一种理解不同数据库管理系统分区管理的视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


db2分区表的创建及分区索引创建可参考:

http://blog.youkuaiyun.com/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.youkuaiyun.com/yunxiu2804/article/details/38090677









         







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值