DM8:查询达梦数据库表空间--数据文件使用大小/扩容限制
1 查询表空间与数据文件使用情况
DECLARE
K INT:=(SELECT cast(PAGE()/1024 as varchar));
BEGIN
SELECT
F."PATH" 数据文件 ,
F.CLIENT_PATH,
G.NAME 所属表空间,
F.MAX_SIZE||'M' 文件扩展限制,
(CASE F.AUTO_EXTEND WHEN '1' THEN '是' ELSE '否' END) 文件自动扩容,
(CASE F.NEXT_SIZE WHEN '0' THEN '默认值' ELSE F.NEXT_SIZE||'M' END) 文件下次扩容值,
F.TOTAL_SIZE*K/1024 ||'M' 文件当前大小 ,
ROUND((F.FREE_SIZE * K/1024 /(F.TOTAL_SIZE * K/1024.0)),2)*100 ||'%' AS 空闲率,
(1-ROUND((F.FREE_SIZE * K/1024 /(F.TOTAL_SIZE * K/1024.0)),2))*100 ||'%' AS 使用率
FROM SYS."V$DATAFILE" F LEFT JOIN SYS.V$TABLESPACE G ON F.GROUP_ID=G.ID ORDER BY 1;
END;
查询结果:
测试:表 T1 使用 T1 表空间 达到文件最大限制值:报错:磁盘空间不足
2 查询表空间与数据文件使用情况(不带中文避免乱码)
DECLARE
K INT:=(SELECT cast(PAGE()/1024 as varchar));
BEGIN
SELECT
F."PATH" DATAFILE ,
F.CLIENT_PATH,
G.NAME _TABLESPACE,
F.MAX_SIZE||'M' FILE_LIMIT,
(CASE F.AUTO_EXTEND WHEN '1' THEN 'Y' ELSE 'N' END) FILE_AUTO_EXTEND,
(CASE F.NEXT_SIZE WHEN '0' THEN 'DEFAULT' ELSE F.NEXT_SIZE||'M' END) FILE_NEXT_EXTEND_VALUE,
F.TOTAL_SIZE*K/1024 ||'M' FILE_SIZE ,
ROUND((F.FREE_SIZE * K/1024 /(F.TOTAL_SIZE * K/1024.0)),2)*100 ||'%' AS _FREE,
(1-ROUND((F.FREE_SIZE * K/1024 /(F.TOTAL_SIZE * K/1024.0)),2))*100 ||'%' AS _USE
FROM SYS."V$DATAFILE" F LEFT JOIN SYS.V$TABLESPACE G ON F.GROUP_ID=G.ID ORDER BY 1;
END;