【DM8】范围分区表

范围分区

范围分区是按照某个列或几个列的值的范围来创建分区,当用户向表中写入数据时,数据库服务器将按照这些列上的值进行判断,将数据写入相应的分区中。

在创建范围分区时,首先要指定分区列,即按照哪些列进行分区,然后为每个分区指定数据范围。范围分区支持 MAXVALUE 范围值的使用,MAXVALUE 相当于一个比任何值都大的值。范围分区非常适用于数据按时间范围组织的表,不同的时间段的数据属于不同的分区。
分区列是数字或日期类型
分区键必须为主键

1 创建分区

命令行方式

CREATE TABLE TEST.t1
(
id INT not NULL,
name VARCHAR2(10)
)
PARTITION BY RANGE(id)
(
PARTITION P1 VALUES LESS THAN (100),
PARTITION P2 VALUES LESS THAN (200)
)
STORAGE(INITIAL 1,NEXT 1,MINEXTENTS 1,FILLFACTOR 0);

图形化界面方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建成功
在这里插入图片描述

2 插入数据

插入1-199的数据

BEGIN
FOR i in 1...199 LOOP
INSERT INTO TEST.T1 VALUES(i,'aaa-'||i);
end loop;
commit;
end;

在这里插入图片描述
在这里插入图片描述

3 查询分区情况

select table_name,PARTITION_NAME from dba_tab_partitions where table_name='T1';

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0087ecd600f9478383e3eeaa52a01ad4.p
查询分区的数据

select count(*) from T1 PARTITION(P1);

在这里插入图片描述

4 增加分区

当插入数据256时

INSERT into T1 VALUES(256,'aaa-256');

在这里插入图片描述
没有合适的分区 ,添加分区

ALTER TABLE T1 ADD PARTITION P3 VALUES LESS THAN(300);

再执行添加256成功
在这里插入图片描述

5 指定表空间

CREATE table TEST.T2(
id INT not NULL,
name VARCHAR2(20)
)
PARTITION BY RANGE(id)
(
PARTITION P1 VALUES LESS THAN(100) TABLESPACE "test01",
PARTITION P2 VALUES LESS THAN(MAXVALUE) TABLESPACE "test02"
);

6 堆表

堆表分区需要在同一个表空间
nobranch 不设定分支
branch 指定并发支数
branch (a,b)指定并发和非并发支数
在这里插入图片描述

CREATE TABLE TEST.T3(id INT,name VARCHAR2(10))
PARTITION BY RANGE(id)
(
PARTITION P1 VALUES LESS THAN (100),
PARTITION P2 VALUES LESS THAN (200)
)
STORAGE(INITIAL 1,NEXT 1,MINEXTENTS 1,FILLFACTOR 0,NOBRANCH);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值