范围(range)分区:
创新互联专注于大姚网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供大姚营销型网站建设,大姚网站制作、大姚网页设计、大姚网站官网定制、小程序定制开发服务,打造大姚网络公司原创品牌,更为您提供大姚网站排名全网营销落地服务。
一::对于分区表,如果where条件种没有分区列,那么oracle会扫描所有的分区,然后做PARTITION RANGE
ALL 操作,这样成本将比未分区的全表扫描稍微高点,因为需要合并各个分区.
二:范围分区可以用values less than (maxvalue)增加一个默认分区,maxvalue 常量表示该分区用来存放所有其
他分区无法存放的记录,
三:范围分区可以对各种谓词做分区消除,包括=,,,等比hash,和list分区要灵活
1、创建语句
create table p(id number)
partition by range(id)
(partition p1 values less than(100) tablespace t1,
partition p2 values less than(200) tablespace t2,
partition p3 values less than(300) tablespace t3);
2、添加分区
alter table p add partition p4 values less than (400) tablespace t4;
3、清除分区数据
alter table p trunc partition p1;
4、删除分区
alter table p drop partition p1;
list分区也需要指定列的值,其分区值必须明确指定,该分区列只能有一个,不能像range或者hash分区那样同时指定多个列做为分区依赖列,但它的单个分区对应值可以是多个。
在分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入/更新就会失败,因此通常建议使用list分区时,要创建一个default分区存储那些不在指定范围内的记录,类似range分区中的maxvalue分区。
在根据某字段,如城市代码分区时,可以指定default,把非分区规则的数据,全部放到这个default分区。
如:
create
table
custaddr
(
id
varchar2(15
byte)
not
null,
areacode
varchar2(4
byte)
)
partition
by
list
(areacode)
(
partition
t_list025
values
('025'),
partition
t_list372
values
('372')
,
partition
t_list510
values
('510'),
partition
p_other
values
(default)
)