表分区 使用

Posted 突破自我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表分区 使用相关的知识,希望对你有一定的参考价值。

10g 时间分区,每个时间分区要建一个对应的分区。

create table table_aaa
(
entry_id VARCHAR2(18),
pre_entry_id VARCHAR2(18),
id_chk VARCHAR2(1),
i_e_flag VARCHAR2(1),
i_e_port VARCHAR2(4),
i_e_date DATE,
d_date DATE, 
entry_part varchar2(20)
)
partition by range (d_Date)
subpartition by list (entry_part) subpartition template
(
subpartition EH_B values (B),
subpartition EH_C values (C),
subpartition EH_E values (E),
subpartition EH_H values (H),
subpartition EH_M values (M),
subpartition EH_N values (N),
subpartition EH_X values (X),
subpartition EH_OTHER VALUES (DEFAULT) 
)
(
partition part_200201 values less than (to_date(200201,yyyymm))
);

 

--再增加表分区

alter table table_aaa add partition part_200202 values less than (to_date(200202,yyyymm))
(
subpartition EH_B values (B),
subpartition EH_C values (C),
subpartition EH_E values (E),
subpartition EH_H values (H),
subpartition EH_M values (M),
subpartition EH_N values (N),
subpartition EH_X values (X),
subpartition EH_OTHER VALUES (DEFAULT) 
);

 

上面已经建立了两个分区,因为现在的业务要求是每个月一个分区,所以每个月都是再建 一个分区。

那么这样应该用一个job,调试存储过程,在存储过程里写动态建分区:

execute immediate alter table table_aaa add partition values (||CHR(39)||part_||table_aaa.d_Date||CHR(39)||) (subpartition values less than(to_date(sysdate,|| CHR(39)||yyyymm||CHR(39)||)))( subpartition EH_B values (‘‘‘B‘‘‘),subpartition EH_C values (‘‘‘C‘‘‘),subpartition EH_E values (‘‘‘E‘‘‘),subpartition EH_H values (‘‘‘H‘‘‘), subpartition EH_M values (‘‘‘M‘‘‘),subpartition EH_N values (‘‘‘N‘‘‘),subpartition EH_X values (‘‘‘X‘‘‘),subpartition EH_OTHER VALUES (DEFAULT));

 

以上是关于表分区 使用的主要内容,如果未能解决你的问题,请参考以下文章

没索引oracle无唯一索引交换分区会丢失数据?

将数据从底部工作表对话框片段传递到片段

MySQL 表数据分区,每10000条数据自动分区

是否可以使用 JetBrains DataGrip 对表进行分区? (PostgreSQL)

使用 WITH 和过度分区困难更新表

MYSQL分区表详解