达梦数据库的段、簇、页是DM逻辑存储机构,如果看官方文档相对比较抽象,不宜理解,本次通过实验来帮助大家理解。
首先我们创建数据库时需要分配页大小、簇大小。
我们可以通过达梦的动态视图dba_segments来了解段、簇、页之间的关系。
示例:
创建用户
create user test1 identified by "dameng123" ;
grant dba to test1;
1 创建表
create table t1 as select * from v$datafile where 1=2;
2 查看dba_segments
select * from dba_segments where owner='TEST1';
可以看到T1表有16个页,创建一个空表会自动分配一个簇。单元是按簇来分配的,所以BLOCKS字段只能是16、32、48、64…
刚才上面我们看到页大小是16k 那么字节数=16*16*1024=262144
3 批量插入数据
begin
insert into t1 select * from v$datafile;
for i in 1..1000 loop
insert into t1 select * from v$datafile;
commit;
end loop;
end;
4 可以看到增加了3簇
5 那么我们在清空表的时候发现数据没有得到释放。
delete t1;
commit;
select * from dba_segments where owner='TEST1';
6 我们可以通过truncate来清除
truncate table t1;