1.创建水平分区表,包括范围分区表、哈希分区表、列表分区表。
--范围分区
create table tab_range (c1 int , c2 varchar(10), c3 date)partition by range(c3)
(partition p1 values less than ('2012-3-1'),partition p2 values less than
('2012-6-1'),partition p3 values less than ('2012-9-1'),partition p4 values less
than (maxvalue));
--列表分区
create table tab_list (
id number,
name varchar2(32),
city varchar2(32))
partition by list(city)
(
partition p_jiangsu values ('nanjing', 'suzhou'),
partition p_zhejiang values('hangzhou', 'jiaxing')
);
--哈希分区
create table tab_hash(
id number,
name varchar2(32))
partition by hash(id)
(
partition p1,
partition p2
);
2.分区列包含多个列。
create table sales_data (
sale_id number,
sale_date date,
region varchar2(50),
amount number
)
partition by range (sale_date) subpartition by list (region) (
partition p_2021 values less than ('2022-01-01') (
subpartition sp_americas values ('americas'),
subpartition sp_europe values ('europe'),
subpartition sp_asia values ('asia'),
subpartition sp_other values (default)
),
partition p_2022 values less than ('2023-01-01') (
subpartition sp_americas values ('americas'),
subpartition sp_europe values ('europe'),
subpartition sp_asia values ('asia'),
subpartition sp_other values (default)
)
);
\d+ sales_data
3.分区表操作,包括查询分区、增加分区、删除分区、截断分区、合并分区、拆分分区、交换分区、重命名
分区。
--查询分区
insert into tab_range values(1, 'a', '2012-1-1');
insert into tab_range values(2, 'b','2012-5-1');
insert into tab_range values(3, 'c','2012-12-1');
select* from tab_range_1_prt_p1;
select* from tab_range_1_prt_p2;
select* from tab_range_1_prt_p3;
select* from tab_range_1_prt_p4;
--增加分区
create table tab_range_new (
评论