达梦数据库页(数据块)大小的区别和选择

达梦数据库页(数据块)大小的区别和选择

1、DM页的概念

页/数据页(也称数据块),是DM数据库中最小的数据存储单元,类似于oracle的block数据块。页大小可以为4KB、8KB、16KB、32KB,DM数据库在初始化时,如果不指定大小默认是8KB,数据库初始化后,页大小不能随意改变。通常建议16KB或32KB。
在这里插入图片描述
**

2、下面举例说明页大小的区别

采用默认的 8KB 页初始化数据库,创建表时字段长度指定为 8188,观察插入数据情况。
**

示例1:插入单个字段

create table test1 (a varchar2(8188),b varchar(8188));

–测试插入单子字段,长度为3800,是可以成功插入的。
declare
v varchar2(8188);
v_sql varchar2(8188);
begin
v:=‘a’;
for i in 1…3800
loop
v:=v||‘a’;
end loop;
v_sql:=‘insert into test1(a) VALUES (’’’||v||’’’)’;
print(v_sql);
execute immediate v_sql;
commit;
end
–再次插入,就会报错,记录超过长度。
declare
v varchar2(8188);
v_sql varchar2(8188);
begin
v:=‘a’;
for i in 1…4000
loop
v:=v||‘a’;
end loop;
v_sql:=‘insert into test1(a) VALUES (’’’||v||’’’)’;
print(v_sql);
execute immediate v_sql;
commit;
end

**

示例2:插入行总长度

–测试每行记录总长度,长度为1900,是可以成功插入的。
declare
v varchar2(8188);
v_sql varchar2(8188);
begin
v:=‘a’;
for i in 1…1900
loop
v:=v||‘a’;
end loop;
v_sql:=‘insert into test1(a,b) VALUES (’’’||v||’’’,’’’||v||’’’)’;
print(v_sql);
execute immediate v_sql;
commit;
end
–再次插入,就会报错,记录超过长度。
declare
v varchar2(8188);
v_sql varchar2(8188);
begin
v:=‘a’;
for i in 1…2000
loop
v:=v||‘a’;
end loop;
v_sql:=‘insert into test1(a,b) VALUES (’’’||v||’’’,’’’||v||’’’)’;
print(v_sql);
execute immediate v_sql;
commit;
end
在这里插入图片描述

3、页大小的结论:

1)数据库初始化时,选择了默认的8KB页大小,在后期使用时,即便字符类型的最大长度设置为最大值8188,实际插入长度及每行记录的总长度会受到page_size大小的限制;
2)页大小选择建议:根据实际生产环境的需求,选择页大小16KB,甚至更大的32KB;
3)如果生产环境为中小型业务系统,选择默认的8KB,更大的页,空间占用率也更大。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值