Oracle数据库根据特定条件查询表空间占用情况
时间: 2024-05-07 16:20:37 浏览: 7
你可以使用以下 SQL 语句查询 Oracle 数据库中表空间的占用情况:
```
SELECT
t.tablespace_name AS tablespace_name,
ROUND(SUM(d.bytes) / (1024 * 1024), 2) AS total_space_mb,
ROUND(SUM(decode(f.bytes, null, d.bytes, f.bytes)) / (1024 * 1024), 2) AS used_space_mb,
ROUND((SUM(d.bytes) - SUM(decode(f.bytes, null, d.bytes, f.bytes))) / (1024 * 1024), 2) AS free_space_mb,
ROUND((SUM(decode(f.bytes, null, d.bytes, f.bytes)) / SUM(d.bytes)) * 100, 2) AS used_percent
FROM
dba_free_space f,
(SELECT
tablespace_name,
file_id,
SUM(bytes) AS bytes
FROM
dba_data_files
GROUP BY
tablespace_name,
file_id) d,
dba_tablespaces t
WHERE
t.tablespace_name = d.tablespace_name
AND d.tablespace_name = f.tablespace_name(+)
AND d.file_id = f.file_id(+)
GROUP BY
t.tablespace_name;
```
这个 SQL 语句将返回表空间名称、总空间大小、已使用空间大小、剩余空间大小和使用百分比。你可以根据你的特定需求修改该查询中的 WHERE 子句,以筛选符合条件的表空间。