oracle 分区表

来源:互联网 发布:存储软件 编辑:程序博客网 时间:2024/05/20 14:15
--设定分区

alter table t1 rename to hongrao


select * from hongrao ;

---创建范围分区

create table asd(id number)
partition by range(id)
(partition part1 values less than(4) , partition part2 values less than (Maxvalue))

1. 每个分区只需要设定其范围的最大值即可
2. than 后面加括号
3.最后一个分区不需要设定最大值,采用内置关键字maxvalue即可

---散列分区

create table asd(id number)
partition by hash(id)
partitions 2 store in(system,sys)

---散列分区将连续值可以不放在同一分区中,这样有助于减少IO竞争
--store in 是可以不设置的,将采取默认表空间


----创建列表分区

create table world(country varchar(23))
partition by list(country)
(partition part1 values ('china','usa','ca') , partition part2 values('japan','india','af'),partition other values(default))

1.也可以在每个分区后设置器表空间,不设置采取默认表空间
2.最后一个表空间和范围分区类似采用了默认


-----子分区,抑或是组合分区

create table china(p varchar2(200),s varchar2(200))
partition by list(p)
subpartition by hash(s)
subpartitions 10
(partition part1 values('guangdong','zhejiang','shanghai','biejing'),partition part2 values('guangxi','sichuan'),partition other values(default))

--最好为每个分区表穿件索引
---不能为散列分区和子分区创建全局索引

---查看分区
select * from all_part_tables where lower(table_name) in('china','world')