DM 支持的分区类型
范围分区:对表中的某些列上值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上;
哈希分区:通过指定分区编号来均匀分布数据的一种分区类型,通过在 I/O 设备上进行散列分区,使得这些分区大小基本一致;
列表分区:通过指定表中的某个列的离散值集,来确定应当存储在一起的数据。例如,可以对表上的 status 列的值在(‘A’,‘H’,‘O’)放在一个分区,值在(‘B’,‘I’,‘P’)放在另一个分区,以此类推;
组合(多级)分区:按上述三种分区方法进行任意组合,将表进行多次分区,称为多级分区表。
间隔分区(属于范围分区):在创建范围分区表时,可通过 INTERVAL <间隔表达式> 子句将该范围分区表指定为间隔分区表。当对间隔分区表中的数据进行插入或更新操作时,若新的数据无法匹配现有的分区子表,则系统将自动以用户指定的现有分区的末尾临界值为起始值,以 < 间隔表达式 > 指定的值为间隔值创建一个可以匹配新数据的间隔分区。
在达梦中我们也可以使用间隔分区,这边简单介绍和进行demo测试列举。
建测试范围分区表
drop if exsits table dmtest ;
create table dmtest(
c1 TIMESTAMP(6) not null,
c2 varchar2(10))partition by range(c1)
interval(numtodsinterval(1,‘DAY’))
(
partition p1 values less than (‘2023-02-21’)
) enable row movement;
说明:
–按天创建分区,使用NUMTOYMINTERVAL函数
–enable row movement 打开行迁移,允许更新后数据发生跨分区的移动。
插入测试数据
insert into dmtest(c1,c2) values(‘2023-02-20’,1);
insert into dmtest(c1,c2) values(‘2023-02-21’,1);
insert into dmtest(c1,c2) values(‘2023-02-22’,1);
insert into dmtest(c1,c2) values(‘2023-02-23’,1);
insert into dmtest(c1,c2) values(‘2023-02-24’,1);
insert into dmtest(c1,c2) values(‘2023-02-25’,1);
insert into dmtest(c1,c2) values(‘2023-02-26’,1);
insert into dmtest(c1,c2) values(‘2023-02-27’,1);
insert into dmtest(c1,c2) values(‘2023-02-28’,1);
commit ;
select * from sysdba.dmtest --验证结果
C1 C2
2023-02-20 1
2023-02-21 1
2023-02-22 1
2023-02-23 1
2023-02-24 1
2023-02-25 1
2023-02-26 1
2023-02-27 1
2023-02-28 1
对分区子表进行再次查看
select name from sysobjects t where name like ‘DMTEST%’
DMTEST
DMTEST_P1
DMTEST_SYS_P1221_1223
DMTEST_SYS_P1221_1225
DMTEST_SYS_P1221_1227
DMTEST_SYS_P1221_1229
DMTEST_SYS_P1221_1231
DMTEST_SYS_P1221_1233
DMTEST_SYS_P1221_1235
DMTEST_SYS_P1221_1237
文章
阅读量
获赞