注册
DM9对比DM8表空间自动扩容测试及机制总结【#达梦数据库 #达梦同行者征文】
专栏/技术分享/ 文章详情 /

DM9对比DM8表空间自动扩容测试及机制总结【#达梦数据库 #达梦同行者征文】

羽书飞影 2026/08/25 160 2 0
摘要

一、前提准备

1、版本:9.1.0.26。
2、SQL准备。

##查看表空间大小
select 
	   A.tablespace_name,
	   a.INCREMENT_BY,
       A.bytes / 1024 TOTAL_KB,
       B.bytes / 1024 FREE_KB,
       (A.bytes - b.bytes)/1024 USE_KB
  from DBA_DATA_FILES A,
       DBA_FREE_SPACE B
   where  a.tablespace_name = b.tablespace_name;
##测试表空间增长
create table A(id int,name varchar(100));
DECLARE 
 a number:=0;
 begin 
 for i in 1..1500000 loop
 insert into a (id,name) values(i,'sa');
end loop;
commit;
end;
##业务用户测试
create tablespace TEST datafile 'TEST' size 128 autoextend on CACHE = NORMAL;
create user TEST identified by "1Qaz[][]!"
default tablespace "TEST";
grant "PUBLIC","SOI","DBA" to TEST;

二、测试流程

2.1 DM8

2.1.1 本次测试基于DM8.1.4.80版本。

1、初始化后数据库表空间默认自动扩展为0,查看默认表空间大小。
image.png
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出,自动扩展为0的情况下,默认均以64MB大小进行扩容。
image.png
image.png
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容依旧为64MB。
image.png
image.png
4、修改自动扩容大小为72MB,再次使用数据录入提升表空间最大值,自动扩容为72MB。
image.png
image.png
5、使用业务表空间做以上测试,结果一样。
image.png

2.1.2 本次测试基于DM8.1.3.26P45版本。

1、初始化后数据库表空间默认自动扩展为0,查看默认表空间大小。
image.png
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出,自动扩展为0的情况下,默认均以64MB大小进行扩容。
image.png
image.png
128MB是数据录入过大,发生扩容两次。
image.png
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容依旧为64MB。
image.png
4、修改自动扩容大小为72MB,再次使用数据录入提升表空间最大值,自动扩容为72MB。
image.png
image.png
5、修改自动扩容大小为10MB至60MB区间进行测试,
6、使用业务表空间做以上测试,结果一样。
image.png

2.1.3 修改自动扩容大小为10MB至60MB区间进行测试

自动扩容改为10MB,每次自动扩容70MB.
image.png
image.png
image.png
自动扩容改为40MB,每次自动扩容80MB。
image.png
image.png
image.png
自动扩容改为60MB,每次自动扩容120MB。
image.png
image.png

2.2 DM9

本次测试基于DM9.1.0.26版本
1、初始化后数据库表空间默认自动扩展为64,查看默认表空间大小。
image.png
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出, 自动扩展为64的情况下,默认均以64MB大小进行扩容。
image.png
image.png
image.png
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容为2MB。
image.png
image.png
image.png
4、使用业务表空间做以上测试,结果一样。
–创建表空间TEST并在创建表DMTEST指定TEST表空间
image.png
image.png
插入数据
image.png
image.png
image.png

三、总结

3.1 DM8

1、默认自动扩展大小为0,自动扩容单位最小为64MB,扩容大小为配置参数*X>=64MB,X为最小乘积。
a)例如配置参数为0,以64MB为最小单位扩展。
b)例如配置参数为10,X=7,
c)例如配置参数为20,X=4
2、配置使用超过64MB的自动扩容,每次扩容以配置项为准。
3、通过16页16簇与32页32簇的库测试,自动扩容大小与数据库页、簇无关。
4、使用8.1.4.80与8.1.3.26版本测试,测试结果无差异。

3.2 DM9

DM9.1.0.26初始化完后,初始MAIN表空间初始扩容大小为64MB。将MAIN表空间每次扩容大小从64MB修改为2MB以后,每次扩容大小变为2MB,得出结论DM9表空间扩充大小先以autoextend_on_next指定的值优先,通过创建新的表空间测试的结论和MAIN测试结果一致。

#达梦数据库 #达梦同行者征文

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服