--add分区
alter table par_table_name add partition partition_name values less than ( ) tablespace name users01;
--添加default分区
alter table par_table_name add partition part01 values (default) tablespace users01 ;
查询分区里数据
select * from partition_table partition(part01) ;
修改分区里数据
update par_table_name partition(part01) t set =
删除分区里数据
delete from par_table_name partition(part01) t where ..... ;
合并分区
alter table par_table_name merge partitions part01,part02 into partition part02 ;
--拆分分区
-- spilt partition 分区名 at(这里是一个临界区,比如:50000就是说小于50000的放在part_01,而大于50000的放在part_02中)
alter table par_table_name split Partition part2 at (50000) into (Partition part01 tablespace user01, Partition part02 tablespace users02);
--更改分区名
alter table par_table_name rename partition part01_new to part01_old ;
--移动分区
alter table par_table_name move partition part01 tablespace users01 ;
--truncate 分区
alter table part_table_name truncate partition (part01) ;
--删除分区
alter table part_table_name drop partition part01;
分区索引:
分区索引
对于分区索引,不能整体进行重建,只能对单个分区进行重建。语法如下:
Alter index idx_name rebuild partition index_partition_name [online nologging]
说明:
online:表示重建的时候不会锁表。
nologging:表示建立索引的时候不生成日志,加快速度。
如果要重建分区索引,只能drop表原索引,在重新创建:
SQL>create index loc_xxxx_col on xxxx(col) local tablespace SYSTEM;
这个操作要求较大的临时表空间和排序区。
创建一个Local索引,注意这里可以将不同分区的索引指定创建到不同的表空间:
CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
(
PARTITION dbobjs_06 TABLESPACE users,
PARTITION dbobjs_07 TABLESPACE users
);
CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
(
PARTITION dbobjs_06 TABLESPACE users,
PARTITION dbobjs_07 TABLESPACE users
) TABLESPACE users;
不指定分区
create index ind_name on part_table_name(id_part) local ;
exchange 分区(表结构一致)
alter table part_table_name exchange partition(subpartition) part01 with table t_name;
alter table part_table_name exchange partition part01 with table T_name including indexes without validation;
alter table par_table_name add partition partition_name values less than ( ) tablespace name users01;
--添加default分区
alter table par_table_name add partition part01 values (default) tablespace users01 ;
查询分区里数据
select * from partition_table partition(part01) ;
修改分区里数据
update par_table_name partition(part01) t set =
删除分区里数据
delete from par_table_name partition(part01) t where ..... ;
合并分区
alter table par_table_name merge partitions part01,part02 into partition part02 ;
--拆分分区
-- spilt partition 分区名 at(这里是一个临界区,比如:50000就是说小于50000的放在part_01,而大于50000的放在part_02中)
alter table par_table_name split Partition part2 at (50000) into (Partition part01 tablespace user01, Partition part02 tablespace users02);
--更改分区名
alter table par_table_name rename partition part01_new to part01_old ;
--移动分区
alter table par_table_name move partition part01 tablespace users01 ;
--truncate 分区
alter table part_table_name truncate partition (part01) ;
--删除分区
alter table part_table_name drop partition part01;
分区索引:
分区索引
对于分区索引,不能整体进行重建,只能对单个分区进行重建。语法如下:
Alter index idx_name rebuild partition index_partition_name [online nologging]
说明:
online:表示重建的时候不会锁表。
nologging:表示建立索引的时候不生成日志,加快速度。
如果要重建分区索引,只能drop表原索引,在重新创建:
SQL>create index loc_xxxx_col on xxxx(col) local tablespace SYSTEM;
这个操作要求较大的临时表空间和排序区。
创建一个Local索引,注意这里可以将不同分区的索引指定创建到不同的表空间:
CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
(
PARTITION dbobjs_06 TABLESPACE users,
PARTITION dbobjs_07 TABLESPACE users
);
CREATE INDEX dbobjs_idx ON dbobjs (created) LOCAL
(
PARTITION dbobjs_06 TABLESPACE users,
PARTITION dbobjs_07 TABLESPACE users
) TABLESPACE users;
不指定分区
create index ind_name on part_table_name(id_part) local ;
exchange 分区(表结构一致)
alter table part_table_name exchange partition(subpartition) part01 with table t_name;
alter table part_table_name exchange partition part01 with table T_name including indexes without validation;