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;
1、初始化后数据库表空间默认自动扩展为0,查看默认表空间大小。
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出,自动扩展为0的情况下,默认均以64MB大小进行扩容。
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容依旧为64MB。
4、修改自动扩容大小为72MB,再次使用数据录入提升表空间最大值,自动扩容为72MB。
5、使用业务表空间做以上测试,结果一样。
1、初始化后数据库表空间默认自动扩展为0,查看默认表空间大小。
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出,自动扩展为0的情况下,默认均以64MB大小进行扩容。
128MB是数据录入过大,发生扩容两次。
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容依旧为64MB。
4、修改自动扩容大小为72MB,再次使用数据录入提升表空间最大值,自动扩容为72MB。
5、修改自动扩容大小为10MB至60MB区间进行测试,
6、使用业务表空间做以上测试,结果一样。
自动扩容改为10MB,每次自动扩容70MB.
自动扩容改为40MB,每次自动扩容80MB。
自动扩容改为60MB,每次自动扩容120MB。
本次测试基于DM9.1.0.26版本
1、初始化后数据库表空间默认自动扩展为64,查看默认表空间大小。
2、通过数据录入提升main表空间使用率,通过不提交SQL提升roll表空间使用率,从下图可以看出, 自动扩展为64的情况下,默认均以64MB大小进行扩容。
3、修改自动扩容大小为2MB,再次数据录入提升表空间最大值,自动扩容为2MB。
4、使用业务表空间做以上测试,结果一样。
–创建表空间TEST并在创建表DMTEST指定TEST表空间
插入数据
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版本测试,测试结果无差异。
DM9.1.0.26初始化完后,初始MAIN表空间初始扩容大小为64MB。将MAIN表空间每次扩容大小从64MB修改为2MB以后,每次扩容大小变为2MB,得出结论DM9表空间扩充大小先以autoextend_on_next指定的值优先,通过创建新的表空间测试的结论和MAIN测试结果一致。
#达梦数据库 #达梦同行者征文
文章
阅读量
获赞
