【DBA笔记】Oracle之表空间使用率满及空间不足解决方案
-- 查询表空间使用率并排除默认表空间和临时表空间
SELECT
dfs.tablespace_name,
total_space_mb,
(total_space_mb - free_space_mb) AS used_space_mb,
free_space_mb,
ROUND((total_space_mb - free_space_mb) / total_space_mb * 100, 2) AS used_pct
FROM
(SELECT
tablespace_name,
ROUND(SUM(bytes) / 1048576) AS total_space_mb
FROM
dba_data_files
GROUP BY
tablespace_name) dfs
JOIN
(SELECT
tablespace_name,
ROUND(SUM(bytes) / 1048576) AS free_space_mb
FROM
dba_free_space
GROUP BY
tablespace_name) fs ON dfs.tablespace_name = fs.tablespace_name
WHERE
dfs.tablespace_name NOT IN ('SYSTEM', 'SYSAUX', 'TEMP');
这段代码用于查询除了默认的SYSTEM、SYSAUX和临时表空间TEMP之外的所有用户表空间的使用率,并以MB以及百分比的形式提供使用情况。这对于数据库管理员监控表空间的使用情况非常有帮助。
评论已关闭