Oracle按日自动创建分区

前端之家收集整理的这篇文章主要介绍了Oracle按日自动创建分区前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle按日自动创建分区

数据库中某张表日益积累导致表空间满额,但该表未建分区,根据索引删除太耗时间往往造成delete语句超时。所以通过rename的方式新建一个分区表以便日后维护。

  • 新建日分区表
  • rename

新建日分区表

CREATE TABLE weibo_detail_new
PARTITION BY RANGE(CREATED_AT)
INTERVAL (numtodsinterval(1,’DAY’))
(
PARTITION part_01 values LESS THAN (TO_DATE(‘20170123’,’YYYYMMDD’))
)
as select * from weibo_detail where 1<>1 ;

20170123 这个时间表示当前时间。1<>1 先创建一个空的表

select table_name,partition_name from user_tab_partitions where table_name=’WEIBO_DETAIL_NEW’;

WEIBO_DETAIL PART_01

以上是weibo_detail_new 的分区信息。

insert into weibo_detail_new (id,created_at) values (‘sss’,sysdate+3);
commit ;

插入几条测试数据。在执行查看分区语句,可以看到新分区出现:

WEIBO_DETAIL PART_01
WEIBO_DETAIL SYS_P8325
WEIBO_DETAIL SYS_P8341

然后根据select * from weibo_detail _newpartition(SYS_P8341) 进行分区查询即可。

rename

rename weibo_detail to weibo_detail_20170123; rename weibo_detail_new to weibo_detail;

猜你在找的Oracle相关文章