Oracle按日自动创建分区
@H_301_2@因数据库中某张表日益积累导致表空间满额,但该表未建分区,根据索引删除太耗时间往往造成delete语句超时。所以通过rename的方式新建一个分区表以便日后维护。- 新建日分区表
- rename
新建日分区表
@H_301_2@CREATE TABLE weibo_detail_new@H_301_2@20170123 这个时间表示当前时间。1<>1 先创建一个空的表
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 ;
@H_301_2@select table_name,partition_name from user_tab_partitions where table_name=’WEIBO_DETAIL_NEW’;@H_301_2@WEIBO_DETAIL PART_01 @H_301_2@以上是weibo_detail_new 的分区信息。
@H_301_2@insert into weibo_detail_new (id,created_at) values (‘sss’,sysdate+3);@H_301_2@插入几条测试数据。在执行查看分区语句,可以看到新分区出现: @H_301_2@WEIBO_DETAIL PART_01
commit ;
WEIBO_DETAIL SYS_P8325
WEIBO_DETAIL SYS_P8341 @H_301_2@然后根据select * from weibo_detail _newpartition(SYS_P8341) 进行分区查询即可。