DM达梦数据库表占用空间大小

发布时间:2023年12月29日

问题描述:

? ? ? ? 项目涉及用户量大且数据量大,为提高查询性能采用分表方式处理数据;根据业务要求总共4张业务表,每张业务表扩展成100张表,系统中总共400张表。部署至测试环境发现测试环境占用的磁盘空间是开发环境的8倍。

问题排查:

? ? ? ? 查询达梦数据库资料,数据库由表空间组成,表空间由多个数据文件组成,数据文件由簇组成,簇由磁盘上连续的页组成,页是数据库的最小分配单元。

查询对比开发环境与测试环境达梦数据库设置的页大小与簇大小

?

可以看到,开发环境页大小为8K,簇大小为16页;测试环境页大小为32K,簇大小为32页。也就是说一个簇在开发环境占用的磁盘空间为8K×16页=128K,测试环境占用空间为32K×32页=1M。测试环境的空间占用正好是开发环境的8倍。

我们再根据簇的大小来推算出每个表空间占用大小,通过查询达梦数据库系统表DBA_SEGMENTS,可以查询到表占用的簇数量和页数量,EXTENTS是段所使用的簇的数量,BLOCKS是占用的页数量。可以看出该表使用2个簇,即占用2*128K=256K的空间。

select t.SEGMENT_NAME, 
       t.SEGMENT_TYPE, 
       t.TABLESPACE_NAME, 
       t.BLOCKS, 
       t.EXTENTS, 
       t.BYTES, 
       t.NEXT_EXTENT
  from DBA_SEGMENTS t
 where t.OWNER= '用户名' 
   AND t.SEGMENT_NAME='表名';

文章来源:https://blog.csdn.net/ZP_nanfangguniang/article/details/135294600
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。