SELECT
a.tablespace_name, -- 表空间名称
total/1024/1024/1024 total, -- 总空间大小(GB)
free/1024/1024/1024 free, -- 空闲空间大小(GB)
(total - free)/1024/1024/1024 used, -- 已用空间大小(GB)
max/1024/1024/1024 max, -- 最大可扩展空间大小(GB)
ROUND((total - free) / total, 4) * 100 used_per -- 空间使用百分比
FROM
( -- 子查询A:计算每个表空间的空闲空间
SELECT
tablespace_name,
SUM(bytes) free -- 计算每个表空间的空闲字节数总和
FROM DBA_FREE_SPACE -- 系统视图:包含表空间的空闲空间信息
GROUP BY tablespace_name -- 按表空间名称分组
) a, -- 给子查询命名为a
( -- 子查询B:计算每个表空间的总空间和最大空间
SELECT
tablespace_name,
SUM(bytes) total, -- 计算每个表空间的总字节数
SUM(maxbytes) max -- 计算每个表空间的最大可扩展字节数
FROM DBA_DATA_FILES -- 系统视图:包含数据文件信息
GROUP BY tablespace_name -- 按表空间名称分组
) b -- 给子查询命名为b
WHERE
a.tablespace_name = b.tablespace_name -- 关联两个子查询(通过表空间名称)
ORDER BY 5 DESC; -- 按第5列(max)降序排序
核心概念解释:
-
表空间(


6130

被折叠的 条评论
为什么被折叠?



