ORACLE之分区

实际开发中,由于历史表累积数量过大,未分区历史表插入数据太慢,影响到程序运行,因此创建了分区表

rangef分区(范围分区)

语法:create table tb1(

id varchar2(10 char) not null,

dte varchar2(20 char) null

)

partition by range(dte)(

partition p202001 values less than (to_date('2020/02/01 00:00:00','yyyy-mm-dd hh24:mi:ss')),

partition p202001 values less than (to_date('2020/03/01 00:00:00','yyyy-mm-dd hh24:mi:ss'))

);

commit;

其中less than : 对于日期类,我测试的结果是小于

插入数据时,如果想插入的速度加快,可以增加并行,并行需要占用数据库的内存空间,下面是开启4个并行

insert /*+append */ into tb1 select /*+parallel(b,4)*/ b.* from tb2 b;

由于delete语句会导致内存空间不会释放,脚本报错后需要重复执行等问题,为了保证数据的准确性,提高效率,对于分区表的数据,我们使用分区交换的方式插入数据,分区交换会导致分区索引失效,因此分区交换后要重建索引,开发中我们开始是将表所有索引全部删除重建,但是后来历史表数据量过大,每次重建索引占用内存过大,后来改成了每次分区索引重建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值