为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: --03134283890-20220720-165295-10045 Pack11
【操作系统】:CentOS Linux 7
【CPU】:8C 16G
【问题描述】*:字符集 UTF-8,页大小32K
表空间自增异常,创建表空间默认扩展大小时是4M,但是使用过程中表空间增长异常大,期间没有大量删除操作,导致空间使用率极低,占用大量磁盘空间
试过逻辑备份还原和DTS迁移,导入新表空间也有同样的问题。
逻辑还原和DTS这种,涉及到了表数据的增长,这些表里边是否有大字段
下面内容只是我个人的理解,不知道是否属实,你可以测试验证下。
查一下下面这个SQL,看看目前在 129 这个表空间里有多少个索引。
SELECT COUNT(1),SF_GET_EXTENT_SIZE,PAGE
FROM SYSINDEXES
WHERE GROUPID = 129
达梦在创建一张表或一个索引时,会初始分配至少1个簇的空间,比如1个簇是16页,每页32K,这样等于初始一张表或创建一个索引就会至少占用16*32=512K的大小。
现在你设置的数据文件每次扩展4M,也就是4096K,折算下来只相当于8个簇的大小。
如果创建了比较多的表或索引,那初始占用的空间就已经很大了。
当某个表中的数据占满了之前分配的簇空间后,再分配空间也是1个簇,也就是又分配16个32K页。
表空间创建的时候,初始化大小设置的是多少?