1.1 创建分区表并导⼊数据(普通表分区⽅式)
注意:
1. ENABLE ROW MOVEMENT 为启⽤⾏迁移,⽤于分区键的值修改时数据可以⾃动迁
移到对应的分区;2. 创建索引时指定索引为本地索引 LOCAL ;3. AS SELECT * FROM ORDER_INFO_COPY 可直接将原表数据导⼊(数据量⼤时需要时间⽐较久);4. 创建时注意索引名称不要和之前重复CREATE TABLE ORDER_INFO_COPY_P ( ID , ORDER_NAME, ORDER_NUM, CREATE_TIME, TEAM_ID, CONSTRAINT CSIPIND_P_PK PRIMARY KEY(ID, CREATE_TIME) ) PARTITION BY RANGE (CREATE_TIME)( PARTITION P202206 VALUES LESS THAN(TO_DATE('2022-07', 'YYYYMM')), PARTITION P202207 VALUES LESS THAN(TO_DATE('2022-08', 'YYYYMM')), PARTITION P202208 VALUES LESS THAN(TO_DATE('2022-09', 'YYYYMM')), PARTITION P202209 VALUES LESS THAN(TO_DATE('2022-10', 'YYYYMM')), PARTITION P202210 VALUES LESS THAN(TO_DATE('2022-11', 'YYYYMM')), PARTITION P202211 VALUES LESS THAN(TO_DATE('2022-12', 'YYYYMM')) ) ENABLE ROW MOVEMENT AS SELECT * FROM ORDER_INFO_COPY
创建索引时指定索引为本地索引 LOCAL
CREATE INDEX IDX_CSI_CP_TEAM_ID ON ORDER_INFO_COPY_P (TEAM_ID) LOCAL
1.2 创建分区表并导⼊数据(自动分区⽅式)
CREATE TABLE ORDER_INFO_COPY_P ( ID , ORDER_NAME, ORDER_NUM, CREATE_TIME, TEAM_ID, CONSTRAINT CSIPIND_P PRIMARY KEY(ID, CREATE_TIME) ) PARTITION BY RANGE (CREATE_TIME) INTERVAL (NUMTOYMINTERVAL (1,'MONTH'))( PARTITION P202206 VALUES LESS THAN(TO_DATE('2022-07', 'YYYYMM')) ) ENABLE ROW MOVEMENT AS SELECT * FROM CARC_SIGN_INFO ; -- 索引同普通⽅式
注意:
通过使⽤ INTERVAL (NUMTOYMINTERVAL (1,'MONTH')) 来周期性⾃动创建分Oracle 11g 开始⽀持⾃动⽣成的分区名称前缀为: SYS_P如果需要修改分区名称: ALTER TABLE ORDER_INFO_COPY RENAME PARTITION SYS_P41 TO P202210;1.3 修改表名称
-- 将原表名称修改为其他 ALTER TABLE ORDER_INFO_COPY RENAME TO ORDER_INFO_COPY_BACK; -- 修改分区后的表为原表名称 ALTER TABLE ORDER_INFO_COPY_P RENAME TO ORDER_INFO_COPY;
1.4 删除原⾮分区表
DROP TABLE ORDER_INFO_COPY_BACK PURGE;
Oracle 数据表进行分区
本文详细介绍了在Oracle数据库中创建分区表,包括手动分区和自动分区的方法,如何导入数据并启用行迁移,创建本地索引,以及表名称的修改和非分区表的删除。
摘要由CSDN通过智能技术生成