注册

管理工具和sqllark中对于表空间文件空闲大小计算是怎样设计的

cctv综合频道 2026/08/03 314 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
DM Database Server 64 V8
8.1
企业版
DB Version: 0x7000d
03134284488-20260408-321389-20200
Msg Version: 1
Gsu level(5) cnt: 102

页大小16k
image.png

从表空间数据文件视图中查找空闲空间大小, 乘以页大小后换算为MB
select CLIENT_PATH, free_size * 1.0, free_size * 1.0 * SF_GET_PAGE_SIZE() / 1024 /1024 from SYS.V$DATAFILE where GROUP_ID=5;
得到结果
image.png

通过manager管理工具查看表空间数据文件属性
image.png

为什么有的数据文件大小向上取整有的向下取整, 这个规则到底是什么样的

补充相关数据
select tablespace_name, file_name, BYTES, USER_BYTES, MAXBYTES from DBA_DATA_FILES;

tablespace_name file_name BYTES USER_BYTES MAXBYTES
MAIN /opt/dmdbms/data/DAMENG/MAIN.DBF 134217728 100139008 35184371040256
TEST1 /opt/dmdbms/data/DAMENG/test11.dbf 67108864 33030144 3103784960
TEST1 /opt/dmdbms/data/DAMENG/test12.DBF 72351744 71827456 177209344
TEST1 /opt/dmdbms/data/DAMENG/test13.dbf 73400320 72876032 177209344
TEST1 /opt/dmdbms/data/DAMENG/test14.dbf 74448896 73924608 177209344
TEST1 /opt/dmdbms/data/DAMENG/test15.dbf 75497472 74973184 177209344
TEST1 /opt/dmdbms/data/DAMENG/test16.dbf 76546048 76021760 177209344
ROLL /opt/dmdbms/data/DAMENG/ROLL.DBF 134217728 76021760 35184371040256
SYSTEM /opt/dmdbms/data/DAMENG/SYSTEM.DBF 134217728 18874368 35184371040256
TEMP /opt/dmdbms/data/DAMENG/TEMP.DBF 67108864 31981568 35184371040256

select tablespace_name, file_name, ROUND((bytes - user_bytes) * 1.0 / bytes * 100, 2) usedPer, Round((bytes - user_bytes) / MAXBYTES * 100, 2) maxPer from DBA_DATA_FILES;

tablespace_name file_name usedPer maxPer
MAIN /opt/dmdbms/data/DAMENG/MAIN.DBF 25.39 0
TEST1 /opt/dmdbms/data/DAMENG/test11.dbf 50.78 1.1
TEST1 /opt/dmdbms/data/DAMENG/test12.DBF 0.72 0.3
TEST1 /opt/dmdbms/data/DAMENG/test13.dbf 0.71 0.3
TEST1 /opt/dmdbms/data/DAMENG/test14.dbf 0.7 0.3
TEST1 /opt/dmdbms/data/DAMENG/test15.dbf 0.69 0.3
TEST1 /opt/dmdbms/data/DAMENG/test16.dbf 0.68 0.3
ROLL /opt/dmdbms/data/DAMENG/ROLL.DBF 43.36 0
SYSTEM /opt/dmdbms/data/DAMENG/SYSTEM.DBF 85.94 0
TEMP /opt/dmdbms/data/DAMENG/TEMP.DBF 52.34 0

这种情况只在页大小为16k的情况下出现了, 4k 8k 32k都是好的

回答 0
暂无回答
扫一扫
联系客服